如果应用程序没有第一次打开,如何更改启动器活动?

时间:2016-08-27 08:57:44

标签: android android-activity

我有两个活动,LoginActivity和MainActivity。如果应用程序是第一次打开,我想启动LoginActivity,如果没有,则启动MainActivity。我已使用以下代码实现:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.id.activity_login);

    SharedPreferences pref = getPreferences(MODE_PRIVATE);
    if (pref.getBoolean("firstOpen", true)) {
        SharedPreferences.Editor editor = pref.edit();
        editor.putBoolean("firstOpen", false);
        editor.apply();

        // do some login work

        Intent intent = new Intent(LoginActivity.this, MainActivity.class);
        startActivity(intent);

        finish();
    }
}

但问题是,屏幕会闪烁,这是由调用startActivity引起的。那么有什么方法可以消除这种烦人的过渡? 非常感谢!

2 个答案:

答案 0 :(得分:1)

像这样使用SharedPreferences:

 if (pref.getBoolean("firstOpen", true) {
                overridePendingTransition(0, 0);
                startActivity(new Intent(getApplicationContext(), MainActivity.class));
                finish();
            }

答案 1 :(得分:0)

在检查第一次打开的应用之前,您正在呼叫use Cviebrock\EloquentSluggable\Sluggable; class Artikel extends Model { .... use Sluggable; ...

尝试这种方式。

setContentView(R.id.activity_login);