2012-03-12 8 views
0

いくつかのアンドロイドのドキュメントを読むと、インテントフィルタはアプリケーションがどのようなインテントに興味を持っているかを示しているようです。私のアプリケーションでは、BluetoothAdapter.ACTION_STATE_CHANGEDを受け取ることに興味があります。私はそれが私のmanfiest xmlファイルで宣言していないが、私のアプリケーションでは、BluetoothAdapter.ACTION_STATE_CHANGEDにフィルタをかけると私はちょうど良いイベントを受け取るBroadcastReceiverを登録します。android manifest.xmlのインテントフィルタを理解する

誰かがなぜインテントフィルタを使用するのか説明できますか?

答えて

1

これで、まだ実行されていなくても、アプリケーションはイベントを受信できます。 http://developer.android.com/guide/topics/manifest/receiver-element.htmlを参照してください。

ブロードキャストレシーバ(BroadcastReceiverサブクラス)をアプリケーションのコンポーネントの1つとして宣言します。ブロードキャスト受信機を使用すると、アプリケーションが他のコンポーネントを実行していなくても、システムまたは他のアプリケーションによってブロードキャストされるインテントを受信することができます。

ブロードキャスト受信者をシステムに知らせるには、この要素を持つマニフェストファイルで宣言する方法が2つあります。もう1つは、レシーバをコードで動的に作成し、それをContext.registerReceiver()メソッドに登録することです。動的に作成された受信者の詳細については、BroadcastReceiverクラスの説明を参照してください。

+0

私は、BroadcastReceiverを作成する2つの方法を示していますが、インパクトフィルターをマニフェストのアプリケーションブロックで使用する必要がある場合、どのように影響を与えますか? –

+0

サービスまたはアプリケーションが以前にシャットダウンされた場合でも、イベントを受信できるようにします。 Androidがアプリやサービスを終了させる可能性があります(メモリが不足しているなど)、プロセスを実行したくない場合もあります。 –

+0

私は参照してください。私が読んでいる例では、アプリがインテントフィルタを宣言し、インテントが別の場所で実行されると、Androidはインテントを処理するためにどのアプリケーションを使用するかをユーザーに通知します。 –

関連する問題