我希望我的应用程序完全退出,即使是从后台退出。
首先,快速解释我的应用程序:
我有以下活动:
启动器 - >主要 - > A - > B - > ç
当我打开应用程序时,我会关闭启动器,检查我是否已登录(通常是这种情况,答案是肯定的,我已登录),完成() - >移至主屏幕,(主要回答问题) - >移到A(..) - >转移到B(...) - >转到C
不使用Main,A,B和C之间的任何光洁度。
在C中我有退出按钮,我希望它完全退出应用程序。
这是我的代码:
发射器:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkIfUserLoggedIn();
//some other code
}
private void checkIfUserLoggedIn() {
String codeStr = DatabaseMgr.getPreferences(getString(R.string.savedCode), this);
if (codeStr != null && !codeStr.isEmpty()) {
moveToMainScreen();
}
}
private void moveToMainScreen() {
Intent intent = new Intent(MainActivity.this, MainScreen.class);
startActivity(intent);
finish();
}
来自Main的- > A - > B - > C ==>相同的代码:
Intent intent = new Intent(<ACT>.this, <Next ACT>.class);
startActivity(intent);
按C键退出:
Intent intent = new Intent(getApplicationContext(), MainScreen.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
MainScreen活动:
if (getIntent().getBooleanExtra("EXIT", false)) {
//1- this.finishAffinity();
//2- finish()
//3- Intent i = new Intent();
//i.setAction(Intent.ACTION_MAIN);
//i.addCategory(Intent.CATEGORY_HOME);
//ListActivity.this.startActivity(i);
//finish();
//4- android.os.Process.killProcess(android.os.Process.myPid());
return;
}
以上所有尝试都是通过电话告诉我的:
我做错了什么?
有没有其他方法可以完全退出应用程序?甚至没有保留在附图中?
非常感谢!
答案 0 :(得分:2)
看起来好像是在询问如何防止您的应用出现在&#34;最近使用的&#34;应用
在这种情况下,您可以向应用清单添加属性。我只是尝试将此属性添加到&#34; MainActivity&#34;在我的应用程序中,它工作:
android:excludeFromRecents="true"
我不知道你是否必须在清单文件中添加它或所有Activity
条目,但是从我的测试中将它放入&#34; MainActivity&#34;。
或者,您可以尝试添加标记:
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
到你的意图。
答案 1 :(得分:0)
编辑:
如果您的API级别> = 21,您可以致电finishAndRemoveTask();
完全清除它。
旧答案:
尝试使用:
在此代码之前android.os.Process.killProcess(android.os.Process.myPid());
:
Intent i = new Intent(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_HOME); startActivity(i);