2013-08-17 145 views
-3

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

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); 
      } 
     }); 
    } 
} 
+0

[关闭应用程序并从RAM杀死它]的可能重复(http://stackoverflow.com/questions/18229797/closing-application-and-killing-it-from- ram) – t0mm13b

+0

也,[this](http://stackoverflow.com/questions/18238276/android-simulate-the-back-button-twice#comment26739948_18238276) – t0mm13b

+2

http://stackoverflow.com/questions/2033914/quitting- an application-is-frowned-upon/2034238#2034238 – CommonsWare

回答

0

使用此标志:

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS

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

intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 

你也可以在你的AndroidManifest文件中添加

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

对于您不希望在近期应用查看活动。

+0

tahnkyou..i也给了falg,但仍然是应用程序在taskmanager – user2401554

+0

中,您应该在您的代码中使用'cleartop'标志。不要删除该标志 –

+0

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); intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); startActivity(intent); – user2401554

0

试试这个退出应用程序

Intent startMain = new Intent(Intent.ACTION_MAIN); 

startMain.addCategory(Intent.CATEGORY_HOME); 
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(startMain); 
finish(); 
+0

谢谢..我试过这也是应用程序正在关闭,但仍然运行在任务管理器 – user2401554

+0

试试这也是android.os.Process.killProcess(android.os.Process.myPid()); – Aravin

0

请好好的想清楚,如果你需要杀死应用:为什么不让OS弄清楚在何处以及何时释放的资源?

否则,如果你是绝对真的确定,使用

完成(); 作为对@dave的回应appleton的评论:首先阅读大问题/答案组合@gabriel发布:退出应用程序 - 是否皱眉?

  • 假设我们现在有一个,问题还在这儿有一个答案, 是,你需要的,如果你是戒烟 做任何事情的代码完成()。显然你可以有多个活动等等, 但这不是重点。让我们通过一些用例

  • 你想让用户退出,因为内存使用和 的一切“不是在后台?Doubtfull运行运行,让用户停止某些 活动的背景,而是让操作系统杀死任何不必要的
    追索权。你希望用户不要去你 应用程序的之前的活动吗?嗯,要么所以也没有配置,或者您需要一个额外的
    选项。如果大部分时间back = previous-activity works,
    如果用户想要做点什么
    其他吗?某种类型的重置,您可以了解是否/如何/等
    您的应用程序已退出,如果您的活动重新获得焦点,则您可以对此采取措施,显示新的屏幕而不是重新启动 。所以最后,当然,finish()并没有杀死
    everthing,但它仍然是你需要的工具,我认为。如果有
    用例为“杀死所有的活动”,我还没有找到它

+0

是的,我有2个活动..在2个活动中,我有退出按钮,如果我点击退出按钮2活动意味着我必须先到达活动我点击退出btn在第一个活动menas我需要关闭整个应用 – user2401554

+0

如果你想退出一个活动然后只写First_activity_context_finish();和moveTaskToBack(true); @ user2401554 – Andrain

+0

noo..when当我点击第一课退出按钮我需要关闭apllication.and从任务管理器中删除应用程序也 – user2401554

0

的Android不允许直接从app.you出口只需要删除您当前activty在进入任何新活动之前从堆叠中取出。

类第一延伸活动{ OnCreate中(){

意图I =新意图(getappcontext(),nextactivity);

stratactivity(i);

first.this.finish();

}

}