我有三个屏幕(活动)。让我们说A,B,C。
屏幕转换的顺序为A,B,C。
我想在用户点击第三个屏幕(屏幕C)中的“后退”按钮后关闭应用程序。
怎么做?
答案 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);
希望这会对你有所帮助。