我为这个话题提出了不同的问题,但仍然没有什么疑问。
Que One:在我的应用程序中,我有多个活动A-> B-> C
A-> B2-> C2 .. A-B3-C3 ...
是流程。我为每个活动都有“返回”和“主页”按钮,分别转到上一个活动和A。
最初我将这些作为“单一任务”发起,一切似乎都很好。
现在我想处理错误情况,因此退出应用程序出现了。 因此,从我的阅读中我理解将每项活动作为单一任务启动并非“好” (我不清楚原因或我错了) 因此,我将所有活动启动模式更改为标准 因此,我注意到的一件事是在“回”或“回家”比以前慢的行为之间切换。所以我在这里做正确的事情
阙二:现在我有我的代码
if (some error)
{
this.finish()
}
code line;
这是我的根活动A,将在启动任何其他活动之前被点击 但我看到的是完成执行但在应用程序真正退出之前,代码行被执行导致一些异常。我预期的行为是,一旦我调用完成,就像从这个活动返回而不再执行此处的代码
Que 3:现在,当我们在root活动上调用完成时,谁将实际处理它。
答案 0 :(得分:7)
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
ListActivity.this.startActivity(i);
finish();
答案 1 :(得分: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
}