我是新的Android开发,现在我的启动器活动显示只有5秒,之后,我想检查用户是否登录功能,并执行操作。
这是我代码。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
exactPreferences = getSharedPreferences("ExactPreference",MODE_PRIVATE);
setContentView(R.layout.activity_landing_page);
session = exactPreferences.getString(Model.getSingleton().SHARED_SESSION_ID,null);
Log.i("Session Id",session);
displayData(); // I want to perform this function after 5 seconds.
}
private void displayData() {
if(session.equals("")){
Intent loginIntent = new Intent(LandingPage.this,
LoginActivity.class);
startActivity(loginIntent);
Log.i("User Logged In", "False");
}
else
{
Intent objIntent = new Intent(LandingPage.this,
IndexPageActivity.class);
startActivity(objIntent);
Log.i("User Logged In", "True");
}
}
字符串
9条答案
按热度按时间smdncfj31#
因为,现在不推荐使用JavaScript,所以使用以下代码:
字符串
6qfn3psc2#
为millisDelayTime变量分配您希望引起延迟的毫秒数。mActivity是Activity的对象,用于提供应用程序上下文。在您的情况下,millisDelayTime应初始化为5000
字符串
iibxawm43#
使用CountDownTimer
字符串
l3zydbqr4#
试试这个,代码创建CountDownTimer一个滴答声
字符串
2ic8powd5#
字符串
o0lyfsai6#
对于Kotlin的方式
字符串
bis0qfac7#
如果可能的话,尽量避免使用postDelayed。这是一个不好的做法,因为它可能会丢失对你想要在屏幕上绘制的对象的引用,并导致NPE。请使用一个NPE。首先,创建一个全局变量NPE,你必须在其中“处理”代码的逻辑。通过使用函数NPE Message来做到这一点。
字符串
然后,无论你想在哪里执行它,只要调用函数:
型
请记住,在onDestroyView方法(在Fragment中)或onDestroy(在Activity中)中,您必须调用
型
rkue9o1l8#
实现这一点的最佳选择是使用Handler:
字符串
qybjjes19#
**更新:**使用Kotin Couroutines:
字符串
这里你可以使用GlobalScope,viewmodelScope,或者lifecycle Scope。要取消这个作业,你可以调用cancel方法。
型
你可以使用这个方法来增加一些延迟,调用下面的方法
displayData()
,这样它会在5秒后执行。型
**注意:**不要使用像
Thread.sleep(5000);
这样的线程,因为它会阻塞你的UI,并使其无响应。