特殊广播接收者
2016-10-13 22:14
120 查看
比如操作特别频繁的广播事件 屏幕的锁屏和解锁 电池电量的变化 这样的广播接收者在清单文件里面注册无效
09-08 07:25:42.239: E/ActivityThread(2173): Activity com.itheima.screen.MainActivity has leaked IntentReceiver com.itheima.screen.ScreenReceiver@b6486088 that was originally registered here. Are you missing a call to
unregisterReceiver()?
import android.os.Bundle; import android.app.Activity; import android.content.IntentFilter; import android.view.Menu; public class MainActivity extends Activity { private ScreenReceiver screenReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* <receiver android:name="com.itheima.screen.ScreenReceiver"> <intent-filter > <action android:name="android.intent.action.SCREEN_OFF"/> <action android:name="android.intent.action.SCREEN_ON"/> </intent-filter> </receiver>*/ //[1]动态的去注册屏幕解锁和锁屏的广播 screenReceiver = new ScreenReceiver(); //[2]创建intent-filter对象 IntentFilter filter = new IntentFilter(); //[3]添加要注册的action filter.addAction("android.intent.action.SCREEN_OFF"); filter.addAction("android.intent.action.SCREEN_ON"); //[4]注册广播接收者 this.registerReceiver(screenReceiver, filter); } @Override protected void onDestroy() { //当activity销毁的时候 取消注册广播接收者 unregisterReceiver(screenReceiver); super.onDestroy(); } }
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class ScreenReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //[1]获取到当前广播的事件类型 String action = intent.getAction(); //[2]对当前广播事件类型做一个判断 if ("android.intent.action.SCREEN_OFF".equals(action)) { System.out.println("屏幕锁屏了"); }else if ("android.intent.action.SCREEN_ON".equals(action)) { System.out.println("说明屏幕解锁了~~~"); } } }
当activity销毁的时候 取消注册广播接收者
09-08 07:25:42.239: E/ActivityThread(2173): Activity com.itheima.screen.MainActivity has leaked IntentReceiver com.itheima.screen.ScreenReceiver@b6486088 that was originally registered here. Are you missing a call to
unregisterReceiver()?
相关文章推荐
- 使用服务注册特殊的广播接收者
- 特殊的广播接收者
- 使用服务注册特殊广播接收者
- 特殊的广播接收者(界面注册)
- 特殊的广播接收者(界面注册)
- 使用服务注册特殊广播接收者
- 特殊的广播接收者(界面注册)
- android特殊广播接收者
- android服务_使用服务注册特殊的广播接收者
- 自定义广播发送者和接收者
- Android四大组件之广播接收者
- Android四大组件之广播接收者
- Android之BroadcastReceiver广播接收者
- android 限制广播消息的接收者
- Android中的BroadCastReceiver(广播接收者)
- android,利用广播接收者调用服务的方法,代码注册广播接收者
- Android(java)学习笔记176:BroadcastReceiver之 短信发送的广播接收者
- 6.广播接收者_服务
- Project——使用广播接收者实现短信窃听器
- android 限制广播消息的接收者