3

SQLiteデータベースを使用してAndroidアプリケーションにデータを保存したいと思います。問題ない。しかし、事前定義された間隔(毎日10、14、18、および22時)でIntentService、データベースへのアクセスも必要とするを実行したいと思います。そしてここに問題があります:

の起動時にユーザーがアプリケーションを使用している場合、でアクティブなデータベース接続が1つあり、で1つが確立されるIntentServiceため、問題が発生します。したがって、データベースはロックされ、失敗しますよね?ActivityIntentServiceIntentService

これらの場合、が現在の操作(、、など)を終了するのをIntentService待ってから、正常に実行することをどのように達成しますか?ActivitySELECTUPDATE

私のアクティビティでは、でデータベース接続を(経由でSQLiteOpenHelper)開き、onCreateで閉じonDestroyます。これは、その間にIntentServiceがデータベースで機能する可能性がないことを意味しますか?

4

1 に答える 1

4

したがって、データベースはロックされ、IntentServiceは失敗しますよね?

SQLiteDatabaseそれらが別々のオブジェクトに対して同時に操作を実行する場合、はい。

これらの場合、IntentServiceはアクティビティが現在の操作(SELECT、UPDATEなど)を終了するのを待ってから正常に実行することをどのように達成しますか?

シングルトン、カスタムオブジェクト、またはSQLiteOpenHelperを介して、アクティビティとサービスの両方に単一のインスタンスを使用します。ApplicationContentProvider

于 2012-06-04T00:19:29.573 に答える