Android GCM通知受信時のServiceでSQLiteを効率良く使うには
レシーバーで通知受信時にサービスを立ち上げてステータスバーに通知を出す処理を定義しています。
ただ、実際にステータスバーに通知を出すかどうかは サービス内で SQLite を用いて判断します。
現在は サービスに一応 static で SQLite を保持しており、
onStartCommand で null だったらデータベースをインスタンス化しております。
また、 onDestroy にて毎回クローズしています。
とは言え、サービスは毎回終了する度に onDestroy がコールされると思うので
実質1通知を処理するのに毎回 データベースを読み込んでいるかと思います。
データベースのレコードはアプリ起動時に毎回最適化しているのでせいぜい平均50程度と殆ど負荷にはならないかと思いますが、それでも効率が悪いのには変わりありません…
トークアプリのため、通知はたくさん来ます。
SQLiteはネイティブで保持されているとのことで、closeしないことも考えましたが、
やはり、closeしなかった場合はメモリリークが発生しますし…
通知を処理するサービスでSQLiteを使用するにはどのように保持・管理・closeするのがベストなのでしょうか?