我的应用程序中有各种 Activity ,流程非常复杂。 我想要做的是,一旦连接了 USB 设备,我想清除并完成返回堆栈 Activity ,然后完成当前 Activity 和 System.exit(0) 以关闭应用程序。
我已经实现了 usb 设备监听器。我想知道如何清除并完成返回堆栈 Activity (如果有的话,它不会每次都有任何返回堆栈 Activity )然后完成当前的。
此外,如果我的 Activity A 在顶部,并且它在后堆栈中有 2 个 Activity (B,C)。现在,如果 Activity A 在后台运行并且连接了 USB,那么只有 Activity A 会收听它吗? (我在每项 Activity 中都实现了 USB 接收器。)
如何在我的应用程序不崩溃的情况下实现这一目标?
谢谢
最佳答案
finishAffinity()
方法将结束当前 Activity 和所有父 Activity ,但它仅适用于 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 级别
在你的一项 Activity 中
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:清除所有后台 Activity ,然后完成当前 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29568362/