3

3 つの画面 (アクティビティ) があります。A、B、C としましょう。

画面遷移はA→B→Cの順です。

ユーザーが3番目の画面(画面C)から「戻る」ボタンをタップしたら、アプリケーションを閉じたいと思います。

どうやってするの?

4

5 に答える 5

4

Cアクティビティの戻るボタンのクリックイベントで次のコードを試してください

System.exit(0);

または、次のコードを使用することもできます

android.os.Process.killProcess(android.os.Process.myPid());
于 2013-01-29T12:50:19.783 に答える
3

user936414 が示唆するように、アクティビティ A から B に移動するとアクティビティ A が終了し、B から C に移動するとアクティビティ B が終了するため、アクティビティ C に到達するとスタック上の唯一のアクティビティになり、押し戻すと閉じます.

このような:

startActivity(new Intent(getApplicationContext(), NextActivity.class));
finish();
于 2013-01-29T13:09:31.287 に答える
1

次のブロードキャスト レシーバーをすべてのアクティビティに登録できます。

/* Logout Intent Actions */
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.package.ACTION_LOGOUT");
broadcastReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
     Log.i("MyApp","Loggin out from <activity>");
     finish();
}
};
registerReceiver(broadcastReceiver, intentFilter);
/* Logout Intent Actions */

そして、あなたが呼び出すたびに

broadcastIntent.setAction("com.package.ACTION_LOGOUT");
sendBroadcast(broadcastIntent);

これにより、ブロードキャストが送信されてすべてのアクティビティが終了し、アプリがバックグラウンドになります。

Android での「アプリケーションを閉じる」という概念は、実際にシャットダウンするように命令することができないため、まったく異なることに注意してください。

于 2013-01-29T12:32:38.713 に答える
0

アクティビティ B からアクティビティ C を開くときは、次のインテントを使用します。

Intent intent = new Intent(this, StartActivity.class)
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

これまでのすべての活動を終了します。

于 2013-01-29T12:36:46.783 に答える
0

アクティビティ B からアクティビティ C を開始する場合、次のコードを使用してアクティビティ C を開始します。

Intent intent = new Intent(getApplicationContext(), ActivityC.class)
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

これがあなたを助けることを願っています。

于 2013-01-29T12:43:43.480 に答える