2016-12-14 17 views
0

私は受信機を介してお互いに話す2つのアプリケーションがあります。アプリケーションAでボタンが押されると、特定の許可を得てIntentをブロードキャストします。アプリケーションBは次に起動していくつかの計算を行い、アプリケーションAの特定のアクセス権を持つインテントを再度ブロードキャストします。両方のマニフェストでパーミッション(同じ名前)を定義し、両方のレシーバも登録します。受信機のライフサイクル

<permission android:name="aa.bb.cc.dd" 
    android:label="permission" 
    android:protectionLevel="normal"></permission> 

    <receiver android:name=".receiver" 
     android:exported="true"> 

     <uses-permission android:name="aa.bb.cc.dd"/> 

     <intent-filter> 
      <action android:name= "a_certain_action"/>/> 
     </intent-filter> 
    </receiver> 

とそれらを呼び出す:

Intent i = new Intent(); 
    i.setAction("a_certain_action"); 
    sendBroadcast(i,"aa.bb.cc.dd"); 

しかし、これは今日、昨日、完璧な仕事をしながら、私は意図をブロードキャストすると、アプリケーションBの受信機が目を覚ますことはありません。何故ですか?

答えて

1

あなたのアプリはおそらく殺され、受信者は登録解除されています。サービスを利用しようとすると、ブロードキャストを登録します

+0

受信機は、アプリケーションが動作する必要がありますか? – Libathos

+0

はい、「アプリケーション」を実行する必要があります。しかし、活動全体ではなく、あなたの事例でのサービス –

+0

私のマニフェストに受信機を登録しても、常にイベントを聞いているわけではありませんか? – Libathos

関連する問題