あなたが私に尋ねるなら-あなたの状況にとって最良のことはあなた自身のインテントフィルターを作成することだと思います(あなたがあなたの質問で推測したように)、なぜならあなたがあなたの活動を放送に組み込まれたシステムを受信するために宣言するなら-それは意味があります。では、システムの観点から「彼の契約を破る」ようなもので、場合によってはそれを無視したい場合、この組み込みのブロードキャストを使用する意味は何ですか?
私が提案したことにもかかわらず、とにかくこの組み込みフィルターを使用することにした場合、あなたが望むものを達成する方法は次のとおりです。
マニフェストではなく、最初の起動アクティビティのonCreate()メソッドにレシーバーを登録し、onDestroy()でレシーバーの登録を解除します。
そうすれば、どのアクティビティもフォアグラウンドにない場合、アクティビティは登録されません。つまり、ユーザーの観点から、どのアプリケーションが近いかという状態に近くなります。
それがどのように行われるかわからない場合は、それが方法です:
private BroadcastReceiver mMyCustomReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerReceiver(mMyCustomReceiver, IntentFilter.create(YOUR_FILTER_ACTION_COMMAND, YOUR_FILTER_DATA_TYPE));
}
@Override
protected void onDestroy() {
unregisterReceiver(mMyCustomReceiver);
super.onDestroy();
}