概述
多个activity运行,我们想退出程序,
如果仅仅使用
android.os.Process.killProcess(android.os.Process.myPid());
finish();
System.exit(0);
可以退出当前acitivty,但是有可能另外运行的activity会启动,
给人感觉是,已经退出了程序,但是又自动重启了
其他的方案,在每一个activity中,分别finish处理。
因为我的程序有几十个acitivity,分别处理繁琐,容易出错。
下面是我只在一个acitivity中操作退出的方案
示例代码
public class InitialActivity extends AppCompatActivity {
static private Context mThisContext = null;
static private boolean mExitMark = false;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_initial);
mThisContext = this;
if (mExitMark) {
finish();
System.exit(0);
return;
}
}
static public void ForceExitApp() {
Intent intent;
intent = new Intent(mThisContext , InitialActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
mExitMark = true;
}
}
使用说明
InitialActivity 要使用过,在其他activity,直接调用ForceExitApp函数即可。
本人测试即使InitialActivity finish跳转了,ForceExitApp仍然可以关闭