我有一个
Android Best Practice问题.我必须遵循代码,这是很好的工作,但我认为它不是那么优雅.所以,我的问题是:在哪个活动生命周期开始另一个活动很好?
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是否“健康”才有意图启动.
你有什么想法?
最佳答案 我认为更好的方法是创建LauncherActivity,并从中启动活动:
例如:
public class LauncherActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ParentPreferences parentPreferences = new ParentPreferences(getApplicationContext());
Intent intent;
if (parentPreferences.isPassExists()) {
intent = new Intent(this, MainActivity.class);
} else {
intent = new Intent(this, LoginActivity.class);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
startActivity(i);
}
}
更新:
参考Activity | Android Developer
onCreate是第一个生命周期方法,因此当A活动刚刚开始并且不会使任何布局膨胀时更好地启动活动B.