查找刷新時間的博客,發現一般都是通過開線程寫死循環,每分鐘或者每秒鐘給handler發消息來刷新時間的,這種可能導致泄漏,也不穩定,所以個人並不想採納。我們可以直接利用系統的廣播來實現功能。
系統每分鐘都會發送廣播
Intent.ACTION_TIME_TICK
動態註冊廣播
IntentFilter filter=new IntentFilter();
filter.addAction(Intent.ACTION_TIME_TICK);
registerReceiver(timeReciver,filter);
接收廣播
private final BroadcastReceiver timeReciver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_TIME_TICK)) {
TODO//刷新時間
}
}
};