我有一个带有两个显示时间和日期的 TextView 的小部件。
我只是希望这批代码每秒发生一次:
views.setOnClickPendingIntent(R.id.rl, pendingIntent);
java.util.Date noteTS = Calendar.getInstance().getTime();
String time = "kk:mm";
String date = "dd MMMMM yyyy";
views.setTextViewText(R.id.tvTime, DateFormat.format(time, noteTS));
views.setTextViewText(R.id.tvDate, DateFormat.format(date, noteTS));
所以我需要一种简单的方法来定期更新小部件中的 TextView,以便时间变化超过标准的 30 分钟。谢谢
最佳答案
你可以创建Handler
和Runnable
,然后让Handler
在指定的时间重启你的Runnable
间隔。您的程序可能如下所示:
private Handler mHandler = new Handler();
@Override
public void onResume() {
super.onResume();
mHandler.removeCallbacks(mUpdateClockTask);
mHandler.postDelayed(mUpdateCLockTask, 100);
}
@Override
public void onPause() {
super.onPause();
mHandler.removeCallbacks(mUpdateClockTask);
}
private Runnable mUpdateClockTask = new Runnable() {
public void run() {
updateClock();
mHandler.postDelayed(mUpdateClockTask, 1000);
}
};
并在 updateClock()
中进行所有 UI 更新。我想所有这一切都发生在 Activity
中,并通过适当的 onPause()/onResume()
调用。
关于android - 定期更新小部件 TextView 的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317600/