代码仍然startActivity后运行()

问题描述 投票:10回答:3

我的应用程序启动上引起轰动的活动,如果我没有在我的数据库中的某些凭证,它必须去一个登录页面。

Intent intent = new Intent(Splash.this, Login.class);
startActivity(intent);
Log.d("debug", "code is still executing!!!");

问题:我的startActivity()后,它仍低于运行所有的代码。 (“代码仍在执行”在控制台打印)。

目标:不要执行从飞溅活动的任何代码,请登录活动。

android android-activity
3个回答
10
投票

这是正常的行为。 startActivity()不会终止当前也不立即中止/退出它是从所谓的代码。它增加了一个新的意图处理程序的进一步处理队列,但这种意图不会由框架,除非控制返回到系统事件循环,除非你的方法执行完毕后,这通常意味着处理。

如果你想终止当前的活动(通常是唯一的理由这样做是不允许BACK按钮返回到它 - 如果你有没有必要的,那么就不要做到这一点)在你的方法来告诉你做的框架调用finish()与此一个。注意,同样,这finish()不会立即终止当前的活动,所以如果你finish()它将被执行后得到的代码。如果这不是你的意图,即使用对return;控制返回给框架。

documentation片段:

无效完成()

当你的活动完成,应关闭调用此。该ONActivityResult传播回谁通过onActivityResult您推出()。


2
投票

这是正常的行为。该startActivity()仅仅是一个“请求”它不会推出新的活动,当前的仍将执行代码的其余部分,直到随后的onDestroy其“死亡”,那么在onPause()()被执行。您可以阅读爱茉莉对这里的活动的生命周期:http://developer.android.com/training/basics/activity-lifecycle/starting.html


0
投票

这是一个在Android的正常行为。 startActivity()方法不会终止当前的活动你。如果你希望你的代码不应该再执行,添加回报,如果你想取消活动添加完成()。

© www.soinside.com 2019 - 2024. All rights reserved.