如何关闭onBackPressed上的Android应用程序?

时间:2013-01-29 12:19:17

标签: android

我有三个屏幕(活动)。让我们说A,B,C。

屏幕转换的顺序为A,B,C。

我想在用户点击第三个屏幕(屏幕C)中的“后退”按钮后关闭应用程序。

怎么做?

5 个答案:

答案 0 :(得分:4)

在c活动后退按钮点击事件中尝试以下代码

System.exit(0);

或者您也可以使用以下代码

android.os.Process.killProcess(android.os.Process.myPid());

答案 1 :(得分:3)

根据user936414的建议,当你从活动A到B完成活动A时,当你从B到C时,完成活动B,所以当你到达活动C时,它将是堆栈中唯一的活动并且向后按将关闭它。

像这样:

startActivity(new Intent(getApplicationContext(), NextActivity.class));
finish();

答案 2 :(得分: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中“关闭应用程序”的概念是完全不同的,因为您实际上无法将其命令关闭。

答案 3 :(得分:0)

从活动B打开活动C

时,请使用以下意图
Intent intent = new Intent(this, StartActivity.class)
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

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

答案 4 :(得分:0)

当您从活动B开始活动C时,请使用此代码开始您的活动C:

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

希望这会对你有所帮助。