Jis*_*had 27 java android timer
我是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");
}
}
Run Code Online (Sandbox Code Playgroud)
Kar*_*eek 82
您可以使用处理程序添加一些延迟.调用以下方法displayData(),以便在5秒后执行.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
displayData();
}
}, 5000);
Run Code Online (Sandbox Code Playgroud)
注意:不要使用线程, Thread.sleep(5000);因为它会阻止您的UI并使其无响应.
小智 7
由于 Handler 现已被弃用,因此请使用以下代码:
new Handler(Looper.myLooper()).postDelayed(new Runnable() {
@Override
public void run() {
//do what you want
}
}, 5000);
Run Code Online (Sandbox Code Playgroud)
使用您希望导致延迟的毫秒数分配millisDelayTime变量。mActivity是Activity 的一个对象,用于提供应用程序上下文。在您的情况下,millisDelayTime应初始化为 5000
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//your code here
}
}, millisDelayTime);
}
});
Run Code Online (Sandbox Code Playgroud)
使用倒数计时器
// There's a TextView txtCount in Main Activity
final int secs = 5;
new CountDownTimer((secs +1) * 1000, 1000) // Wait 5 secs, tick every 1 sec
{
@Override
public final void onTick(final long millisUntilFinished)
{
txtCount.setText("" + (int) (millisUntilFinished * .001f));
}
@Override
public final void onFinish()
{
txtCount.setText("GO!");
finish();
// Time's up - Start the Login Activity
final Intent tnt =
new Intent(getApplicationContext(), LoginActivity.class);
startActivity(tnt);
}
}.start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51933 次 |
| 最近记录: |