我有三个屏幕(活动)。假设 A、B、C。
屏幕转换的顺序是 A、B、C。
一旦用户从第三个屏幕(屏幕 C)点击“返回”按钮,我想关闭应用程序。
怎么做?
在 c 活动后退按钮单击事件中尝试以下代码
System.exit(0);
或者您也可以使用以下代码
android.os.Process.killProcess(android.os.Process.myPid());
正如user936414所建议的,当你从活动A到B完成活动A时,当你从B到C时,完成活动B,所以当你到达活动C时,它将是堆栈上唯一的活动,按回将关闭它.
像这样:
startActivity(new Intent(getApplicationContext(), NextActivity.class));
finish();
您可以在每个活动中注册以下广播接收器
/* 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 中“关闭应用程序”的概念是完全不同的,因为您实际上不能命令它关闭。
当您从活动 B 开始活动 C 时,使用此代码开始活动 C:
Intent intent = new Intent(getApplicationContext(), ActivityC.class)
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
希望这会帮助你。
从 Activity B 打开 Activity C 时,使用以下意图,
Intent intent = new Intent(this, StartActivity.class)
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
它将完成之前的所有活动。