2011-11-08 15 views
0

私のアプリケーションでは、2つのアクティビティ(AとB)と1つのサービスがあります。終了方法()他のアクティビティ(開いている場合)

各アクティビティで別のフィニッシングを呼び出すことができます。

Intent i = new Intent(this, ActivityB.class); 
finish(); 
startActivity(i); 

アプリケーションが意図開いているアクティビティ、使用してフラグをクリックし、ステータスバーをステータスバーのアイコンを作成することができます

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

また私が活動し、サービスを殺す終了ボタンを持っています。

アクティビティBが開いている状態でユーザーがステータスバーアイコンをクリックすると、ユーザーはアクティビティAを表示するので、問題は発生しますが、終了ボタンをクリックするとアクティビティAを終了してサービスしますが、

私は終了ボタンをクリックするだけでアプリケーションの起動時とtrueにfalseに設定SharedPreferences値で解決:問題の決算も活動B

編集を解きます。 onResume()では、値をチェックし、それが真であればアクティビティを終了します。

答えて

0

あなたは、次の行うことができます:

Intent i = new Intent(); 
i.setAction("com.help.KILLME"); 
context.sendBroadcast(i); 

にステータスバーから意図を変更し、あなたがステータスバーからクローズする活動でこれを置く:

private final BroadcastReceiver receiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     finish(); 
    } 
}; 


//OnCreate method 
//[...] 
IntentFilter filter = new IntentFilter(); 
    filter.addAction("com.help.KILLME"); 
    registerReceiver(receiver, filter); 

これが停止しますアクティブアクティビティ(onPause()でレシーバを登録解除し、onResume()に登録することを忘れないでください)

関連する問題