开机关机广播和电量变化广播

原创 2015年11月18日 17:44:34

广播的使用步骤:
1.注册(在AndroidManifest.xml中声明receiver或者手动调用registerReceiver方法);
2.声明权限;
3.实现广播;
4.取消注册(和注册需要一对一调用);

注册:

mContext.registerReceiver(mVoltageCheck, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
mContext.registerReceiver(ShutdownReceiver, new IntentFilter(Intent.ACTION_SHUTDOWN));

取消注册:

mContext.unregisterReceiver(mVoltageCheck);
mContext.unregisterReceiver(ShutdownReceiver);

声明权限:

<uses-permission android:name="android.permission.SHUTDOWN"/>

实现:
关机广播

private BroadcastReceiver ShutdownReceiver = new BroadcastReceiver() {
        final static String TAG = "ShutdownReceiver";
        final static String onReceive = "onReceive";
        final static String ACTION = "android.intent.action.ACTION_SHUTDOWN";//截取关机事件

   @Override
    public void onReceive(Context arg0, Intent arg1) {
            // TODO Auto-generated method stub
            Log.d(TAG,onReceive);
            if (arg1.getAction().equals(ACTION)) {
                Log.e(TAG,"imageCount = "+imageCount);
                stop = false;
            }
            Log.e(TAG,ACTION);
        }
    };

监测电量广播:

private BroadcastReceiver mVoltageCheck = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
                // 电压 电池电量
                Log.i(TAG,"ACTION_BATTERY_CHANGED");
                int level = intent.getIntExtra("level", -1);
                int voltage = intent.getIntExtra("voltage", 0);
                Log.i(TAG,"level = "+level);
                Log.i(TAG,"voltage = "+voltage);
                if(voltage == 0){
                    ......
                }
            }
        }
    };

开机广播:
权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>

注册:

<receiver android:name="com.pax.reboot.BootBroadcastReceiver">
<intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED"/   >
</intent-filter>
</receiver>

实现:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class BootBroadcastReceiver extends BroadcastReceiver {
final static String TAG = "BootBroadcastReceiver";
final static String ACTION = "android.intent.action.BOOT_COMPLETED";

@Override
public void onReceive(Context arg0, Intent arg1) {
    // TODO Auto-generated method stub
Log.e(TAG,"onReceive");                if(arg1.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
Intent intent = new Intent(arg0, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
arg0.startActivity(intent);
        }
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android如何监听开机广播和关机广播

需求描述:有些时候,我们需要我们的程序在开机后能自动运行,在系统即将关闭时,能写入一些记录到指定的文件里。 一、开机广播监听:         Android系统启动完成后会发出启动完成广...

监听电池电量之粘性广播

场景: 省电APP监听电池电量变化,然后动态刷新UI! 我们平时最经常使用的是sendBroadcast,就是把一个Intent广播出去。 /** * Perform a {...
  • yoywow
  • yoywow
  • 2016-07-27 12:58
  • 3347

广播接收器-BroadcastReceiver 电池电量显示

参考《Android移动开发入门与进阶》 广播接收器是一种专门用来接收广播通知信息的,并作出相应的处理的组件。比如通知电量过低,拍照,发短信,来电等Broadcast Recevier有两种注册方式:...

android 广播监控手机电量

转载自传智播客书籍课后源代码

接收开机广播

  • 2014-12-17 10:02
  • 1.26MB
  • 下载

使用广播实现的Android关机及重启

步骤一:编写Java代码 java部分代码:                            ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)