Android – (动态广播) APP 监听时间变化
注: 该广播用于动态注册,一般使用于Activity内。
-
全局变量:
private boolean mTimeTickRegister = false;//是否已注册时间变化广播
-
自定义广播类:
private BroadcastReceiver mTimeTickReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (Intent.ACTION_TIME_TICK.equals(action)) { if (!isFinishing()) { //需要更新的时间,日期 updateDateAndTimeText(); } } } };
-
注册广播:
private void registerTimeTick() { if (!mTimeTickRegister) { IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_TIME_TICK); registerReceiver(mTimeTickReceiver, filter); mTimeTickRegister = true; } }
-
注销注册:
//一般在 protected void onDestroy() {} 内调用 private void unregisterTimeTick() { if (mTimeTickRegister) { unregisterReceiver(mTimeTickReceiver); mTimeTickRegister = false; } }