当开始另一项活动的好时机

时间:2015-07-28 12:41:17

标签: android android-layout android-activity

我有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是否“健康”才有意图启动。

你有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我认为更好的方法是创建LauncherActivity,并从中启动活动:

例如:

"http://code.createjs.com/soundjs-0.6.1.min.js"></script>

<强>更新 参考Activity | Android Developer

enter image description here

onCreate是第一个生命周期方法,因此当A活动刚刚开始并且不会使任何布局膨胀时,更好地启动活动B

答案 1 :(得分:0)

我会让清单启动你的MainActivity或你称之为的东西。 MainActivity首先检查用户是否已登录。如果没有,则启动LoginActivity,它返回onActivityResult()并返回登录结果。 它确实取决于用户每次启动应用程序时的登录要求,或者只需要一次,或偶尔登录一次。如果每次都必须登录,那么可以从LoginActivity开始。否则,每次启动LoginActivity并传​​递给MainActivity(或其他)似乎都是浪费。 “浪费”不是表现的,而是你的应用程序的清晰度。

答案 2 :(得分:-1)

我认为最适合您的解决方案是添加SplashScreen或类似假冒&#34;屏幕。 在这里,您可以检查他是否已经登录,并在此基础上开始正确的活动。

也许绝对最好的方法是使用片段来完成它,但你必须改变很多应用程序。

关于何时调用它,onCreate是完美的:)