さて、私の質問はタイトルと同じくらい簡単です:
application 内で実行中のすべてのアクティビティで finish() を呼び出す方法はありますか?
したがって、アプリを完全にシャットダウンする方法が必要です。
さて、私の質問はタイトルと同じくらい簡単です:
application 内で実行中のすべてのアクティビティで finish() を呼び出す方法はありますか?
したがって、アプリを完全にシャットダウンする方法が必要です。
BroadCastReceiver を使用してそれを実現できます。
すべてのアクティビティに以下を入れます:
private BroadcastReceiver mLoggedOutReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};
onCreate で受信者を登録します。
registerReceiver(mLoggedOutReceiver, new IntentFilter(Preferences.INTENT_ACTION_LOGGED_OUT));
onDestroy:
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(mLoggedOutReceiver);
}
すべてのアクティビティのマニフェストと次のフィルター:
<intent-filter>
<action android:name="com.example.intent.action.LOGGED_OUT" />
</intent-filter>
次のように Preference クラスで宣言されたインテント Action があります。
public static final String INTENT_ACTION_LOGGED_OUT = "com.example.intent.action.LOGGED_OUT";//logout
最後に、終了ボタンなどから sendBroadcast を呼び出すだけです。
sendBroadcast(new Intent(Preferences.INTENT_ACTION_LOGGED_OUT));//logout
お役に立てれば。
NO
しかし、あなたはホールアプリケーションのように存在することができますがSystem.exit(0);
、それは推奨される方法ではありません..androidはアプリケーションを終了するように設計されていません。
android.os.Process.killProcess(android.os.Process.myPid());
このコードにより、アプリがシャットダウンされる可能性があります。