2011-10-11 194 views
0

我对这个主题进行了各种不同的尝试,但仍然没有多少疑问。Android:退出应用程序

阙一:在我的应用程序有多个活动A-> B-> C^

A-> B2-> C2 .. A-B3-C3 ...

是流。我有“返回”和“回家”按钮,每个活动分别转到上一个活动和A.

最初我将其中的每一个都作为“单一任务”启动,一切看起来都很好。

现在我想处理错误条件,从而退出应用程序来图片。 从我的阅读我从我理解它不是“好”,推出每个活动作为单一的任务 (我可能不是很清楚原因或我在这里错了) 因此,我改变了所有活动的发射模式作为标准 所以我注意到一件事在“回”或“回家”之间切换的行动比以前慢。 SO IAM我做正确的事在这里

阙二:现在我有我的代码

if (some error) 
    { 
     this.finish()  
    } 

    code line; 

这是我的根活动A和开展任何其他活动之前将受到打击 但我看到的是完成被执行,但在应用程序真正退出之前,代码行被执行导致一些异常。我的预期行为是一旦我打电话完成,它就像是从这个活动返回,并没有更多的代码在这里执行

阙3:现在,当我们对根活动调用完成后,谁会实际处理它。

+0

你可以使用:intent.setFlags(意向.FLAG_ACTIVITY_CLEAR_TOP);打电话给家里的活动。 – Hanry

+0

我如何设置家庭活动的意图标志。有没有办法在androidmanifest中指定它。 也每次我按“home”fron我的任何活动都将被删除? – png

+0

来自其他活动youru可以使用: 意图intent = new Intent(context,Home.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); context.startActivity(intent); – Hanry

回答

7
Intent i = new Intent(); 
i.setAction(Intent.ACTION_MAIN); 
i.addCategory(Intent.CATEGORY_HOME); 
ListActivity.this.startActivity(i); 
finish(); 
+0

可以ü请解释 – png

+0

退出你的应用程序...代码复制粘贴在Onclick ...试试这个......希望这有助于! – Android

+0

@Android我想他是要你解释一下这个代码的功能和工作原理。我还没有通读你的代码,但你有没有在API中查找过这些Intent方法?http://developer.android.com/reference/android/content/Intent.html#setAction(java.lang。字符串) – shanet

0

关闭所有以前的活动如下:

Intent intent = new Intent(this, MainActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.putExtra("Exit me", true); 
    startActivity(intent); 
    finish(); 

然后在MainActivity onCreate()方法添加此完成在MainActivity

setContentView(R.layout.main_layout); 

    if(getIntent().getBooleanExtra("Exit me", false)){ 
     finish(); 
     return; // add this to prevent from doing unnecessary stuffs 
    }