-3

我在这里做一个应用程序当我单击按钮时我有一个退出按钮,那个时候我需要退出应用程序..我尝试使用下面的代码应用程序正在关闭但它仍在 taslmanager 中运行..但是当我单击退出按钮时我应该关闭应用程序以及我应该从任务管理器中删除它是如何可能的。

public class MainMenu extends Activity {
    Button exit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainmenu);

        exit=(Button)findViewById(R.id.btn1);
        exit.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
      Intent intent = new Intent(Intent.ACTION_MAIN);
      intent.addCategory(Intent.CATEGORY_HOME);
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

      startActivity(intent);
            }
        });
   }
 }
4

4 回答 4

0

试试这个退出应用程序

Intent startMain = new Intent(Intent.ACTION_MAIN); 

startMain.addCategory(Intent.CATEGORY_HOME); 
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(startMain); 
finish(); 
于 2013-08-17T12:10:23.987 回答
0

请认真考虑是否确实需要终止应用程序:为什么不让操作系统弄清楚何时何地释放资源?

否则,如果您非常确定,请使用

结束(); 作为对@dave appleton 评论的回应:首先阅读@gabriel 发布的大问题/答案组合:退出应用程序 - 这是否令人不悦?

  • 现在假设我们有了这个,这里的问题仍然有一个答案,如果你正在做任何事情,你需要的代码是finish()。显然,您可以进行不止一项活动等,但这不是重点。让我们运行一些用例

  • 你想让用户因为内存使用而退出一切并且“没有在后台运行?Doubtfull。让用户在后台停止某些活动,但让操作系统杀死任何不需要的
    资源。你希望用户不要去您的应用程序的先前活动?好吧,要么将其配置为不使用,要么您需要一个额外的
    选项。如果大多数情况下 back=previous-activity 有效,
    那么用户是否会根据需要按主页做别的
    事情吗?如果您需要某种重置,您可以了解
    您的应用程序是否/如何/等等,如果您的活动再次获得焦点,您可以对其采取行动,显示一个新屏幕而不是重新启动您所在的位置是。所以最后,当然,finish() 不会杀死
    一切,但我认为它仍然是您需要的工具。如果有
    “杀死所有活动”的用例,我还没有找到

于 2013-08-17T12:12:28.913 回答
0

使用这个标志:

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS.

此标志将通知操作系统将其app/activity从最近应用的缓存中删除。

intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

您还可以添加

android:noHistory="true"
android:excludeFromRecents="true"

在您AndroidManifest不想在最近的应用程序中看到的活动的文件中。

于 2013-08-17T12:06:44.893 回答
0

Android 不允许您直接退出应用程序。您只需在进入任何新活动之前从堆栈中删除当前活动即可。

类首先扩展活动{ oncreate(){

意图 i = new Intent(getappcontext(),nextactivity);

战略性(i);

first.this.finish();

}

}

于 2013-08-17T13:10:23.903 回答