Sul*_*dat 19 android android-manifest android-layout
我想在android活动中定期运行一个方法,在x秒后更新某个字段.我知道它可以在timerTask中完成但是最好的方法是什么?代码示例会很有帮助.
Raj*_*h.k 11
您可以使用以下 android 类:
1.Handler
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//your code
handler.postDelayed(this,20000);
}
},20000);
Run Code Online (Sandbox Code Playgroud)
2.报警管理器
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
// Set the alarm to start at approximately 2:00 p.m.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
Intent intent = new Intent(HomeActivity.this, Yourservice.class);
alarmIntent = PendingIntent.getService(HomeActivity.this, 0, intent, 0);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 600*1000, alarmIntent);
Run Code Online (Sandbox Code Playgroud)
您也可以通过 CountDownTimer 来完成
CountDownTimer countDownTimer;
public void usingCountDownTimer() {
countDownTimer = new CountDownTimer(Long.MAX_VALUE, 10000) {
// This is called after every 10 sec interval.
public void onTick(long millisUntilFinished) {
setUi("Using count down timer");
}
public void onFinish() {
start();
}
}.start();
}
Run Code Online (Sandbox Code Playgroud)
和 onPause()
@Override
protected void onPause() {
super.onPause();
try {
countDownTimer.cancel();
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40061 次 |
| 最近记录: |