我有Android最佳实践问题。我必须遵循代码,这是很好的工作,但我认为它不是那么优雅。所以,我的问题是:在哪个活动生命周期开始另一个活动很好?
public class LoginActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ParentPreferences parentPreferences = new ParentPreferences(getApplicationContext());
if (parentPreferences.isPassExists()) {
Intent i = new Intent(this, MainActivity.class);
startActivity(i);
} else {
setContentView(R.layout.login);
}
}
}
任务是:如果父母已经设置了密码来保护应用程序,那么我们不需要显示LoginActivity。我不知道,当onCreate和其他生命周期方法完成时,一个Activity是否“健康”才有意图启动。
你有什么想法吗?
答案 0 :(得分:3)
我认为更好的方法是创建LauncherActivity,并从中启动活动:
例如:
"http://code.createjs.com/soundjs-0.6.1.min.js"></script>
<强>更新强> 参考Activity | Android Developer
onCreate是第一个生命周期方法,因此当A活动刚刚开始并且不会使任何布局膨胀时,更好地启动活动B
答案 1 :(得分:0)
我会让清单启动你的MainActivity或你称之为的东西。 MainActivity首先检查用户是否已登录。如果没有,则启动LoginActivity,它返回onActivityResult()并返回登录结果。 它确实取决于用户每次启动应用程序时的登录要求,或者只需要一次,或偶尔登录一次。如果每次都必须登录,那么可以从LoginActivity开始。否则,每次启动LoginActivity并传递给MainActivity(或其他)似乎都是浪费。 “浪费”不是表现的,而是你的应用程序的清晰度。
答案 2 :(得分:-1)
我认为最适合您的解决方案是添加SplashScreen或类似假冒&#34;屏幕。 在这里,您可以检查他是否已经登录,并在此基础上开始正确的活动。
也许绝对最好的方法是使用片段来完成它,但你必须改变很多应用程序。
关于何时调用它,onCreate是完美的:)