Android:清除所有backstack活动,然后完成当前活动

前端之家收集整理的这篇文章主要介绍了Android:清除所有backstack活动,然后完成当前活动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序中有各种活动,流程非常复杂.
我想要做的是,只要连接usb设备,我想清除并完成后台堆栈活动,然后完成当前活动和System.exit(0)以关闭应用程序.

我已经实现了usb设备监听器.我想知道如何清除和完成堆栈活动(如果有的话,它不会每次都有任何后端堆栈活动)然后完成当前的活动.

此外,如果我的活动A在顶部,并且它在后堆栈中有2个活动(B,C).现在,如果活动A在后台运行并且USB连接,那么只有活动A会听到它吗? (我在每个活动中都实现了usb接收器.)

如果没有我的应用程序崩溃,我该如何实现

谢谢

解决方法

有完成当前活动和所有父活动的finishAffinity()方法,但它仅适用于 Android 4.1或更高版本

Source

finishAffinity() will Finish this activity as well as all activities immediately below it in the current task that have the same affinity

如果您想要所有API级别
在你的一项活动中

Intent intent = new Intent(this,YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // this will clear all the stack
intent.putExtra("Exit me",true);
startActivity(intent);
finish();

然后在YourActivity onCreate()方法添加内容以完成Activity

setContentView(R.layout.your_layout);
if( getIntent().getBooleanExtra("Exit me",false)){
   finish();
   return; // add this to prevent from doing unnecessary stuffs
}

猜你在找的Android相关文章