0

さて、私の質問はタイトルと同じくらい簡単です:

application 内で実行中のすべてのアクティビティで finish() を呼び出す方法はありますか?

したがって、アプリを完全にシャットダウンする方法が必要です。

4

3 に答える 3

1

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

お役に立てれば。

于 2012-07-11T14:54:16.453 に答える
0

NO

しかし、あなたはホールアプリケーションのように存在することができますがSystem.exit(0);、それは推奨される方法ではありません..androidはアプリケーションを終了するように設計されていません。

于 2012-07-11T14:27:40.837 に答える
0
android.os.Process.killProcess(android.os.Process.myPid());

このコードにより、アプリがシャットダウンされる可能性があります。

于 2012-07-11T14:26:08.937 に答える