Runnableを使用してTextViewテキストを更新することで時計を作成しました。アクティビティにいるとき、TextViewは正しく更新されますが、アクティビティを離れてアクティビティに戻ると、run()
メソッドのコードは実行されなくなります。
アクティビティrun()
の中でもう一度電話する必要がありますか?onResume
なんで?mTicker Runnableは停止していますか?
MyActivity.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();
}