我的应用程序中有各种活动,流程非常复杂.
@H_404_2@我想要做的是,只要连接usb设备,我想清除并完成后台堆栈活动,然后完成当前活动和System.exit(0)以关闭应用程序.
我已经实现了usb设备监听器.我想知道如何清除和完成堆栈活动(如果有的话,它不会每次都有任何后端堆栈活动)然后完成当前的活动.
此外,如果我的活动A在顶部,并且它在后堆栈中有2个活动(B,C).现在,如果活动A在后台运行并且USB连接,那么只有活动A会听到它吗? (我在每个活动中都实现了usb接收器.)
如果没有我的应用程序崩溃,我该如何实现
谢谢
解决方法
有完成当前活动和所有父活动的finishAffinity()方法,但它仅适用于
Android 4.1或更高版本
finishAffinity()
will Finish this activity as well as all activities immediately below it in the current task that have the same affinity
如果您想要所有API级别@H_404_2@在你的一项活动中
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 }