私は、getApplication()。bindService()または単にbindService()を使用するコードをActivity内に持っています。 別のものよりも好ましいものです。アクティビティにライフサイクルがあることを考慮すると、どのシナリオでアプリケーションコンテキストを使用してサービスを開始/バインドするか。startServiceを呼び出すコンテキスト
答えて
の場合は、をアクティビティのサービスにバインドする場合は、Application
コンテキスト(getApplication()
)を使用してください。これは、バインディング自体が、構成変更処理の一部として(例えば、onRetainNonConfigurationInstance()
を介して)処理される必要がある状態を表すためです。 1つのアクティビティー・インスタンスがバインドされる可能性がありますが、構成が変更されるまでアンバインドできません。 Activity
をbindService()
に使用すると、メモリリークが発生します(新しいアクティビティは、サービスにバインドされた元のアクティビティに間接参照を戻します)。
ただし、開始アクティビティからのサービスには、アクティビティにフレームワーク強制状態は含まれません。したがって、アクティビティ自体にstartService()
を使用してサービスを開始するのは問題ありません。
正直なところ、 'Application'コンテキストで' bindService'を呼び出す 'Activity'は見たことがなく、' bind'/'unbind'リクエストがペアになっているので、リークの可能性はありません。 – pskink
@pskink:古いアクティビティからバインドを解除すると、設定変更の一環として、新しいアクティビティから再度バインドするチャンスを得る前に、サービスが停止することがあります。さて、何か他のものがサービスを実行し続けていると確信しているならば(おそらく、それは結びついていても始まっています)、それはおそらく問題ではありません。 – CommonsWare
- 1. 実行中のサービスでstartService()を何度も呼び出す
- 2. アンドロイド:STARTSERVICE(への呼び出しの後、クラスの取得)
- 3. QThreadのコンテキストでメソッドを呼び出す
- 4. HTML5コンテキスト/キャンバス - コンテキスト上の描画を呼び出すタイミング
- 5. REST Webサービスのコンテキストでsparkジョブを呼び出す方法は?
- 6. 現在のコンテキストなしでOpenGL ES APIを呼び出す
- 7. Javaの同期コンテキストからThread.sleep()を呼び出す
- 8. 'this'を$ .ajax呼び出しのコンテキストとして渡す方法
- 9. 親のコンテキストで親コントローラの関数を呼び出す
- 10. backbone.modelをd3.dragコンテキスト内で呼び出す方法
- 11. コンテキストからプライベートPHPExcel_IOFactory :: __ construct()を呼び出す - TYPO3
- 12. スレッドがシステムコールを呼び出すときのコンテキスト切り替え
- 13. Jestテストはどのコンテキストで呼び出されますか?
- 14. startService(インテント)関数を呼び出すことができません。インテントはヌルポインタ例外です
- 15. JavaScriptのパターン:関数呼び出しのコンテキスト
- 16. 関数呼び出しとスタックへのコンテキスト保存
- 17. 非同期呼び出しのフロー実行/論理コンテキスト
- 18. クロージャから呼び出されるメソッド内の自己のコンテキスト
- 19. 前のアクティビティでstartServiceが呼び出されたときにbindServiceが失敗する
- 20. HTTPコンテキストを保持するASP.NET呼び出しでスレッドを作成します。
- 21. MVC - コンテキスト(EF)を呼び出すシンプルなインジェクタと属性例外をスローする
- 22. onloadイベントからオブジェクト関数を呼び出すと、コンテキストが失われます。
- 23. ジャスミン:perameterとしてコンテキストを持つメソッドを呼び出す方法
- 24. 異なるコンテキストで同じマッチストリングを持つテンプレートを呼び出す
- 25. UITextViewを呼び出す方法addTargetメソッドを呼び出す
- 26. フラグメントonInfoWindowを呼び出すメソッドを呼び出す
- 27. APIKitルータを呼び出す前にHTTPエンドポイントを呼び出す
- 28. データベース接続を呼び出すクラスを呼び出す
- 29. このコンテキストを自己呼び出し関数にバインドする方法は?
- 30. "export default"のコンテキストで関数を再帰的に呼び出すか?
この回答を確認するには、[link](http://stackoverflow.com/questions/6446221/get-context-in-a-service)、それは2つの概念についていくつかの明確化があります。 –