我有两个活动,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引起的。那么有什么方法可以消除这种烦人的过渡? 非常感谢!
答案 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);