2011-08-10 14 views
3

私は、特定の意図を聞いて、いくつかのコードを実行する1つの放送受信機を持つアプリを持っています。実行されるこのコードは、それ自身の別のサービスに存在する必要がありますか、またはブロードキャスト受信者が独自のスレッドを開始しますか?アプリは1つの放送受信機で構成できますか?

答えて

2

現在、BroadcastReceiverを実行している(つまり、現在onReceive(Context、Intent)メソッドでコードを実行している)プロセスはフォアグラウンドプロセスとみなされ、極端な場合メモリ圧力。

一旦onReceive()から戻ると、BroadcastReceiverはアクティブではなくなり、そのホスティングプロセスは、実行中の他のアプリケーションコンポーネントと同じくらい重要になります。これは特に重要です。なぜなら、そのプロセスがBroadcastReceiver(ユーザーが最近やりとりしたことのないアプリケーションの一般的なケース)をホストしていただけなので、onReceive()から戻ってくると、システムはそのプロセスを空にし、他のより重要なプロセスのためにリソースを利用できるようにします。

これは、長時間実行される操作では、BroadcastReceiverと組み合わせてサービスを使用して、操作中のすべてのプロセスを含むプロセスをアクティブに保つことが多いことを意味します。より詳細な説明のための

は、この点を確認してください。

http://developer.android.com/reference/android/content/BroadcastReceiver.html

関連する問題