我通过使用 Runnable 更新 TextView 文本来完成时钟。当我在活动中时,TextView 会正确更新,但是当我离开并返回活动时,run()
方法中的代码不再执行。
我必须在我的活动run()
中再次调用吗?onResume
为什么?mTicker Runnable 是否已停止?
我的活动.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHandler = new Handler();
mTicker = new Runnable() {
public void run() {
if(mClockStopped) return;
long now = System.currentTimeMillis();
mCalendar.setTimeInMillis(now);
mClock.setText(DateFormat.format("kk:mm", mCalendar));
mClock.invalidate();
long upTime = SystemClock.uptimeMillis();
long next = upTime + (60000 - now % 60000);
mHandler.postAtTime(mTicker, next);
}
};
mTicker.run();
/* more stuff */
}
@Override
public void onResume()
{
super.onResume();
mClockStopped = false;
}
@Override
public void onPause()
{
mClockStopped = true;
super.onPause();
}