如何在关闭android中的其他活动后关闭主要活动?

问题描述:

我正在开发一个android应用程序。所以在那里我有一个名为“Aboutus”的按钮。当我点击它时,它会启动另一个活动并显示相应的视图。如何在关闭android中的其他活动后关闭主要活动?

这里是按钮关于我们单击事件的代码。

​​3210

然后在关于我们的活动我已经回到button.when我们按该返回按钮将再次去的主要活动。 后退按钮的按键事件是这样的..

back.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      Intent intent = new Intent(AboutUs.this,MainActivity.class); 
      intent.putExtra("aboutus", true); 
      startActivity(intent); 
      finish(); 
      System.exit(0); 
     } 

    }); 

在这里,我把一些额外的意图一些其他purposes.In这种情况下,他们并不重要。所以,然后再次在mainactivity我有退出按钮。应该杀死整个应用程序。

和我的退出按钮代码是这样的。

exit.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
       finish(); 
       System.exit(0); 
     } 

    }); 

退出按钮完美地工作(它结束应用程序),除了一个场景。如果我们点击aboutus并进入该活动,然后按下该活动的返回按钮,然后再次返回到主要活动,最后当我想退出时它不会杀死整个应用程序,而是再次进入关于活动的活动。

总之

, MainActivity --->单击关于我们按钮(无问题在这里。这将开始关于我们的活动)

公司简介----->单击后退按钮(这也工作得很好。回去主活动)

MainActivity - >退出按钮(不工作。它再次进入公司简介活动)

那么如何解决这个问题?

使用意图标志ACTIVITY_CLEAR_TOP以清除在它上面的所有活动:

  Intent intent = new Intent(AboutUs.this,MainActivity.class); 
      intent.putExtra("aboutus", true); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 
      startActivity(intent); 

FLAG_ACTIVITY_CLEAR_TOP从DOC:

如果设置,以及正在启动的活动在 当前已经运行任务,则不是启动该活动的新实例,而是关闭其上的所有其他活动,并且此意图将被传递到(现在在最上面的)旧活动中作为 新的意图。

+0

它的工作原理。感谢您节省我的一天...! –

+0

@SandunkaMihiran也值得一读j2emanue –

我不明白你为什么必须开始MainActivity.java ......用户只要在活动堆栈上点击后退按钮就可以了。另外system.exit(0)是不好的。只需让该应用程序以finish()优雅地完成。
如果您想在aboutUS完成时将某些事情传递给活动,则可以查找onNewIntent()方法。