2016-05-20 11 views
-2

マニフェストファイル経由で、またコード経由でブロードキャスト受信機を登録することの長所と短所は何ですか?アプリが死んだときにアンドロイドのブロードキャスト受信機がリッスンしない

私は受信者を開始し、それを停止するオプションがあるようにコードを介して受信者を登録しました。どういうわけか、受信者は、アプリケーションが死んだときにリッスンしていないことに気付きました。

これは正常ですか?

ありがとうございました。

答えて

2

はい、正常です。あなたはコードを介して活動中の放送を登録しました、アプリは殺されて放送されました。 ブロードキャストが必要な場合は、アプリが起動していない場合は、AndroidManifestファイルでブロードキャストを定義します。

あなたのユーザーがブロードキャストの登録を解除できるようにするには、onRecieve関数に余分なロジックを追加することができます。受信機「登録解除」あなたのユーザーに聞かせて

、ちょうど何でも、あなたのprefsで、またはDBに保存して、作業を行う前に、この値をチェックしてください。

@Override public void onReceive(Context context, Intent intent) { 
    boolean isUnregisteredByUser = getSharedPreferences("MyPrefs", context.MODE_PRIVATE) 
     .getBoolean("IS_UNREGISTERED", false); 

    if(!isUnregisteredByUser){ 
     /* do stuff, handle intent etc */ 
    } 
} 

これは簡単な方法ですが、多分悪い方法...

+0

感謝Vladymyr、別の質問は、私はまだマニフェストを介してブロードキャストを登録すれば、私はまだコードを介してユーザーを登録解除するオプションを与えることができるだろうか? –

関連する問題