退出android应用程序
并使用这种方法退出android应用程序,android,android-activity,Android,Android Activity,并使用这种方法 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 我正在开发一个应用程序,在我需要退出它的最后一个活动中,我使用了上述退出应用程序的方法。问题是它只存在于活动中,并且应用程序在后台运行(见任务管理器)。每当我再
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
我正在开发一个应用程序,在我需要退出它的最后一个活动中,我使用了上述退出应用程序的方法。问题是它只存在于活动中,并且应用程序在后台运行(见任务管理器)。每当我再次加载应用程序时,它都从我退出它的位置(最后一个活动)开始
是否有任何代码可以完全退出并删除表单后台(任务管理器)
提前感谢。为什么不使用
moveTaskToBack(true);
?当您调用
startActivity(意图)时代码>添加<代码>完成()代码>在它之后关闭旧活动(除非您希望将来返回该活动)
因此,您的代码将如下所示:
this.finish()
如果不想调用finish()代码>然后您还可以添加
startActivity(intent);
finish();
与
试试这个:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
尝试在您的AndroidManifest.xml
中使用android:noHistory
标志
您必须通过调用
Intent finishapp = new Intent(Intent.ACTION_MAIN);
finishapp.addCategory(Intent.CATEGORY_HOME);
finishapp.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(finishapp);
也可以在活动中调用destroy方法
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
activity.this.finish();
要退出应用程序,请按以下方式返回根活动(启动器启动的第一个活动):
@Override
public void onDestroy()
{
super.onDestroy();
finish();
}
这将清除任务堆栈直至根活动,然后再次启动根活动
在root活动中,在onCreate()
中,您需要根据意图中的额外内容确定是否退出,如下所示:
Intent intent = new Intent(this, MyRootActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addExtra("exit", "true");
startActivity(intent);
您还谈到了如何从任务管理器中删除应用程序。如果您指的是“最近的应用程序列表”,则这不是“正在运行的应用程序”列表,而是用户最近使用的应用程序列表。你的应用程序出现在那里并不意味着它正在运行
如果您确实希望您的应用程序不显示在“最近应用程序列表”中,只需将其添加到根活动的清单条目中:
Intent intent = getIntent();
if (intent.hasExtra("exit")) {
// User wants to exit
finish();
}
使用此代码启动上一个活动以清除所有活动堆栈。当您按下后退按钮或调用finish()
时,它将退出活动
android:excludeFromRecents="true"
请注意,标记活动清除任务只能从API 11获得
有关更多信息,请参阅:这是我的工作代码
在退出按钮上:
Intent intent = new Intent(this, YourActivityD.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
该代码用于关闭任何其他活动,并将MainActivity置于顶部
现在谈谈你的主要活动:
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
ComponentName cn = intent.getComponent();
Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
mainIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
mainIntent.putExtra("close", true);
startActivity(mainIntent);
finish();
您应该更改清单中活动的行为。阅读有关SingleInstance、SingleTop等的内容。我无法理解您所做的更改,除了将变量intent重命名为finishapp。我没有注意到。我从我的项目中复制代码,它适合我。我使用此代码从第二个活动关闭应用程序。请注意,Intent.FLAG\u ACTIVITY\u CLEAR\u TASK
仅从API 11(Android 3.0)开始提供。
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
ComponentName cn = intent.getComponent();
Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
mainIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
mainIntent.putExtra("close", true);
startActivity(mainIntent);
finish();
if( getIntent().getBooleanExtra("close", false)){
finish();
}