Android 启动新活动后调用finish()

Android 启动新活动后调用finish(),android,android-activity,message-queue,Android,Android Activity,Message Queue,在我的应用程序中加载的第一个活动是初始化活动,完成后将加载一个新活动。我想确保,如果用户按下“Back”,他们会直接进入启动器,而不是初始化屏幕。旁注,这甚至是最好的方法,还是使用某种意图标志做得更好 在对新活动调用startActivity()后调用finish()是否正确 onCreate() { ... startActivity(new Intent(this, NextActivity.class)); finish(); ... } 我仍然在使用Android中的整个“消息队列”方

在我的应用程序中加载的第一个活动是初始化活动,完成后将加载一个新活动。我想确保,如果用户按下“Back”,他们会直接进入启动器,而不是初始化屏幕。旁注,这甚至是最好的方法,还是使用某种意图标志做得更好

在对新活动调用startActivity()后调用finish()是否正确

onCreate() {
...
startActivity(new Intent(this, NextActivity.class));
finish();
...
}

我仍然在使用Android中的整个“消息队列”方法,我的假设是,从我的第一个活动的onCreate()调用startActivity()然后调用finish(),将在消息队列中记录每个消息,但完成onCreate()的执行在开始下一个活动并完成第一个活动之前。这是正确的理解吗?

也许您应该使用清单中活动的标志。xml

谢谢!这正是我想要做的。但是,我仍然有兴趣了解我之前描述的方法中是否存在任何固有的错误或不好的形式,以及我对队列中如何处理消息的理解是否正确。您的代码(开始和结束)绝对正确,还有一种常用的技术。@hackbod:你能指出文档吗?以防万一有人需要它(像我一样)…如果活动A的nohistory=true,首先被发送到后台(即用户按下Home按钮),然后被带回到前台-尽管nohistory=true,活动A的状态会被保留吗?我个人的经验是,nohistory很少是正确的解决方案。一个(通常)意外的行为是,如果用户在进行noHistory活动时接到来电,它将消失。