2014-10-03 76 views
-5

我想退出我的应用程序和我有类似的代码退出:如何直接从我的第二个活动

public void onClickPause (View view) { 

    Intent salida = new Intent(Intent.ACTION_MAIN); 

    finish(); 
} 

但这返回的第一个活动。

+0

集'机器人:clearTaskOnLaunch =“真”'你的发射活动。 – Rustam 2014-10-03 11:39:17

+3

@BarcelonaDev:在提问之前,您必须考虑通过SO进行搜索。真。 – 2014-10-03 11:44:21

回答

3

无论何时您希望退出所有打开的活动,您都应该按下一个按钮,该按钮加载应用程序启动时运行的第一个活动,然后清除所有其他活动,然后完成最后一项活动。这样做在您的项目中应用以下代码

Intent intent = new Intent(getApplicationContext(), FirstActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.putExtra("EXIT", true); 
startActivity(intent); 

以上代码完成除FirstActivity以外的所有活动。然后,我们需要完成FirstActivity在Firstactivity的onCreate输入下面的代码或OnStart中

if (getIntent().getBooleanExtra("EXIT", false)) { 
    finish(); 
} 
+0

与该代码一切正常,除了我在每个活动和de应用程序完成时,并且我回来启动应用程序,我的modelGetter计数器:public static int getPunto(){ \t \t \t return punto ++; \t}不要停止增量,不要从0开始; – BarcelonaDev 2014-10-03 13:16:23

1

在您的第一个活动中,请致电完成()之后startActivity()。这应该够了吧。

编辑:这样第一个活动将是完成第二个活动将退出到主屏幕/启动器。

0

当你通过活动,以移动的后退按钮的工作,你会想到它,有一个东西叫做堆栈中,节省了活动顺序。当您调用finish()时,堆栈顶部的活动结束并返回之前正在运行的活动。这就是为什么你不退出应用程序,但你回到第一次活动。意向salida什么也不做,你可以删除它。 你必须做的是清除后台,然后完成。看看这个question

如果要支持API> 16,你可以叫

finishAffinity() 
相关问题