我正在開發一個Android項目,我正在註冊一個廣播接收器android.intent.action.BATTERY_CHANGED
。我只希望在電平爲100%時處理這個問題,以表明電池已經充滿電。android.intent.action.BATTERY_CHANGED只有當電池電平變化時沒有註冊接收器
但是,只要廣播被註冊,我就會收到意思,說電池狀態已經改變。
當意圖首次註冊時,有沒有辦法停止接收廣播?
感謝您的幫助
我正在開發一個Android項目,我正在註冊一個廣播接收器android.intent.action.BATTERY_CHANGED
。我只希望在電平爲100%時處理這個問題,以表明電池已經充滿電。android.intent.action.BATTERY_CHANGED只有當電池電平變化時沒有註冊接收器
但是,只要廣播被註冊,我就會收到意思,說電池狀態已經改變。
當意圖首次註冊時,有沒有辦法停止接收廣播?
感謝您的幫助
沒有,沒有真正的旋鈕。你已經註冊,或者你沒有註冊。你可以做的是在接收器中設置一個默認爲false的靜態變量。在你的onReceive中,看看這個變量。如果它是假的,將其設置爲true並返回(除此之外別無其他)。它是真實的,處理事件。它需要是靜態的,因爲如果通過清單啓動,接收者不一定是調用之間的相同對象(在通過registerReceiver註冊時沒有檢查)。
不,如果您註冊將收到廣播。你可以試試這個:
private BroadcastReceiver mBatInfoReceiver = null;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_main);
this.mBatInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(final Context ctxt, final Intent intent) {
final int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
if (level == 100) {
// do something
}
}
};
this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}