Android通过StickyBroadcast进行低电量检测提示

逻辑不难,主要代码如下

/**
	 * 通过粘性广播检测电量
	 */
	private void checkBattery()
	{
		//通过粘性广播读取电量
		IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
		Intent intentBattery = registerReceiver(null, intentFilter);//注意,粘性广播不需要广播接收器
		if(intentBattery!=null)
		{
			//获取当前电量  
			int batteryLevel = intentBattery.getIntExtra("level", 0);  
		    //电量的总刻度  
		    int batterySum = intentBattery.getIntExtra("scale", 100);  
			float rotatio = 100*(float)batteryLevel/(float)batterySum;
			LogUtils.d("currentBattery="+rotatio+"%");
			if(rotatio<15)
			{
				getWindow().getDecorView().postDelayed(new Runnable() {
					@Override
					public void run() {
						showAlertToastTip(getString(R.string.common_low_batter));
					}
				}, 100);
			}
		}
	}
	/**
	 * 显示警告提示
	 * @param msg
	 */
	private void showAlertToastTip(String msg)
	{
		TextView msgTv = null;
		Toast toast = null;
		toast = new Toast(this);
		toast.setDuration(Toast.LENGTH_SHORT);
		toast.setGravity(Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0);

		View toastView = LayoutInflater.from(this).inflate(
					R.layout.common_simple_toast_layout, null);
		msgTv = (TextView) toastView.findViewById(R.id.common_toast_text_tv);
		toastView.setTag(msgTv);
		toast.setView(toastView);
		msgTv.setText(msg);
		toast.show();
	}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。