3

我有三个屏幕(活动)。假设 A、B、C。

屏幕转换的顺序是 A、B、C。

一旦用户从第三个屏幕(屏幕 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 时,使用此代码开始活动 C:

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

希望这会帮助你。

于 2013-01-29T12:43:43.480 回答
0

从 Activity B 打开 Activity C 时,使用以下意图,

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

它将完成之前的所有活动。

于 2013-01-29T12:36:46.783 回答