2015年8月18日火曜日

常駐考察メモ

常駐考察メモ

私の出荷済アプリにおいては、参照カウンターを設けて、これがゼロになると、データベースを閉じる&アプリ終了するという方法を採用していた。
しかしながら、下記エラーが発生するという報告が利用者から来た。

Caused by: java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.

上記エラーへの対応方法をネットで調べると、「データベースを閉じるな」という方法が提案されている。
onDestroy()においてデータベースclose()しているにも関わらず、上記エラーが発生しているという状況から察するに、このclose()の後で、onStartCommand()がメッセージを受け取っているということが推測させる。
もはや、どうすることもできません。

●データベースを管理する。
●外部から不意のメッセージを受け取る
この2個の条件を満足させるためには、常駐化しかないかも。

参考:NotificationListenerServiceを実装させたアプリでは、NotificationListenerServiceは常駐している。また、類似アプリの振る舞いを観察しても、常駐させている。

0 件のコメント:

コメントを投稿