在android中以编程方式关闭android应用程序

时间:2014-05-04 05:08:30

标签: android

我有一个有两个活动的应用程序

  • 活性1
  • 活性2

现在我开始Activity1并转移到Activity2现在我想暂时关闭应用程序

  • 如果我使用finish(),我只能关闭Activity2而不能关闭Activity1 Intent intent = new Intent(getActivity(), SplashActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); getActivity().finish();

我想做什么 ::

  1. 我希望我的申请退出(关闭所有活动并转到 主屏幕)
  2. 但我不想让我的apk从Android系统中删除
  3. 我怎样才能做到这一点?
  4. {编辑}

    • 我使用了代码(Activity2有一个片段,它启动了一个对话框 " OK"条件为正条件我正在执行以下条件)
    • 我可以启动之前的活动,但它没有被取消 刚重新加载

    {{1}}

4 个答案:

答案 0 :(得分:0)

当您按照以下方式调用时,需要使用Activity2Flag作为“首要任务”:

Intent intent = new Intent(Activity1.this, Activity2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);  

请参阅Reference

  

如果在传递给 Context.startActivity()的Intent中设置,则此标志将导致在活动开始之前清除与活动关联的任何现有任务。也就是说,活动成为其他空任务的新根,并且任何旧活动都已完成。

然后,在finish()中致电Activity2。这应该可以解决问题。

答案 1 :(得分:0)

有一种方法可以终止您的申请流程,但不建议

this.finish(); Process.killProcess(Process.myPid());

这将终止您的应用程序并释放与其关联的所有内存。

注意:假设您的应用具有单个进程ID

答案 2 :(得分:0)

这样做

Intent intent = new Intent(Activity1.this, Activity2.class);
startActivity(intent);  
Activity1.this.finish();

答案 3 :(得分:0)

Intent intObj=new Intent(this, Homescree.class);
intObj.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | 
 Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intObj);