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