私は、IntentServiceのプライベートデータが最初のstartServiceの2回の呼び出しでクリアされるという問題があります。最初の呼び出しが終了した後にサービスが停止し、2回目の呼び出しを処理するときに再作成されると仮定します。 IntentServiceを再作成しないように強制する方法や、このプライベートデータをstartServiceルーチンの2回の呼び出しで同じにする方法はありますか?強制的にIntentServiceを再作成しないようにする方法はありますか?
4
A
答えて
2
私は、最初の呼び出しが終了した後にサービスが停止し、2番目の呼び出しを処理するときに再作成されると仮定します。
いいえすべてIntents
が処理された場合にのみ終了します。
3
には、インスタンス間でデータを保持するようにしたい場合は、静的変数に入れることができます。典型的な例:ディスクをロードしている状態があるので、最初にインスタンス化されたときにデータをロードするグローバルシングルトンを作成し、それ以降のリクエストで同じインスタンスを使用します(データを再ロードせずに)。 onCreate()でシングルトンを取得するサービスの新しいインスタンスは、以前のサービスインスタンスが既に要求していた場合に再ロードする必要はありません。
このような設計を行う際には、プロセスのライフサイクルを理解し、いつそれを殺すことができるかを理解することが非常に重要です。そうしないと、通常の操作中にプロセスが強制終了されたときに、かなりランダムな時点でデータが失われる可能性があります。
関連する問題
- 1. Lazy <T>オブジェクトを強制的に作成/再作成する方法はありますか?
- 2. vb6コントロールを強制的に再描画する方法はありますか?
- 3. バックボタンを強制的にjQuery Mobileにキャッシュしないようにする方法はありますか?
- 4. アクティビティはいつ強制的に再作成されますか?
- 5. アクティビティを強制的に強制的に破棄し、スタックに残す方法はありますか?
- 6. Googleでサイトのインデックスエントリを再クロール/強制的に追加/強制するサイトマップより効率的な方法はありますか?
- 7. Reactが強制的に要素を破壊して再構成するような、ハックのない方法はありますか?
- 8. python3を強制的に値渡しする方法はありますか?
- 9. WPFにコントロールの再検証を強制する方法はありますか?
- 10. QueryFullProcessImageNameWを強制的にフルフォームにする方法はありますか?
- 11. 強制的にquicktimeを有効にする方法はありますか?
- 12. cfchartがjsを応答コンテンツに強制しないようにする方法はありますか?
- 13. AutoFixtureにImmutableListを強制的に作成する方法
- 14. UIViewにサブビューを強制的にリリースさせる方法はありますか?
- 15. 組合に強制的に1つのタイプのように振る舞う方法はありますか?
- 16. ffmpegを強制的にビデオストリームを圧縮する方法はありますか?
- 17. アクションをモーションイベントに強制する方法はありますか?
- 18. 強制的にブラウザに強制的にサーバー側コードなしで再ロードする
- 19. 自動生成されたファイルを強制的にコミットし、その生成をトリガーする残りのコミットを強制する方法はありますか?
- 20. dll版を強制的に使用する方法はありますか?
- 21. Windowsサービスを強制的に削除する方法はありますか?
- 22. owncloudでユーザーを強制的にログアウトする方法はありますか?
- 23. divを強制的にグループ化する方法はありますか?
- 24. ウェブサイトを強制的にDNSリフレッシュする方法はありますか?
- 25. ホストを強制的にリフレッシュする方法はありますか?
- 26. DataGridViewのコンテンツを強制的にリフレッシュする方法はありますか?
- 27. divを強制的に無視する方法はありますか?
- 28. SIRF3とstyleSwitcher、ブラウザのキャッシュにfont.swfを強制的に再ロードする方法はありますか?
- 29. 終了時にルビープログラムを強制的に再実行する方法はありますか?
- 30. 強制的に印刷する方法はありますか!/ println! (CR LF)
最初のインテントが送信されたと仮定すると、IntentServiceによって処理され、IntentServiceが停止しました。それ以降は、2番目のインテントが送信されました.InententServiceのコンテキストを元のインテントから処理するにはどうすればよいですか? – miqqo
@miqqo:あなたはしません。それが全体のポイントです。呼び出しの間に、 'IntentService'はRAMにありません。実際、どんな運があっても、アプリケーション全体のどれもがRAMにはありません。これを他のオペレーティングシステムの他のアプリケーションと同様に扱う必要があります。データベースなどの永続的なストアで実行する間にデータを保存します。 – CommonsWare