Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之使用BroadcastReceiver實時監聽電量(源代碼分享)

Android開發之使用BroadcastReceiver實時監聽電量(源代碼分享)

編輯:關於Android編程

Android系統中實時的監聽手機電量以及開機啟動功能都是通過BroadcastReceiver組件實現的。我們可以動態注冊這個類的一個實例通過Context.registerReceiver()方法或者靜態注冊,通過標記在androidmanifest . xml。注意:如果我們注冊一個接收器在Activity.onResume()實現,我們應該注銷Activity在Activity生命周期的onPause方法中。(這將減少不必要的系統開銷)。切記不能注銷Activity在onSaveInstanceState(),因為這個方法不會被啟動直到用戶回到歷史堆棧。下面我們通過動態注冊BroadcastReceiver來實現電量的監聽。

(1)在清單文件添加權限

  

(2)在Activity生命周期注冊注銷Receiver

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		reciver=new BatteryBroadcastReciver();
		//創建一個過濾器
		IntentFilter intentFilter=new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
		registerReceiver(reciver, intentFilter);
	}

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		unregisterReceiver(reciver);
	}

(3)繼承BroadcastReceiver接口

public class BatteryBroadcastReciver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){
//得到系統當前電量
int level=intent.getIntExtra("level", 0);
//取得系統總電量
int total=intent.getIntExtra("scale", 100);
textView.setText("當前電量:"+(level*100)/total+"%");
//當電量小於15%時觸發
if(level<15){
Toast.makeText(MainActivity.this, "當前電量已小於15%",Toast.LENGTH_LONG).show();
}

}
}

}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved