android特殊广播接收者
来源:互联网 发布:notepad js格式化插件 编辑:程序博客网 时间:2024/06/06 01:11
一、概述
比如操作特别频繁的广播事件,如屏幕的锁屏和解锁、电池电量的变化等,这样的广播接收者在清单文件里面注册无效。这是因为若如此频繁的事件不停的触发应用响应,那系统的内存更不不够用,系统不得卡死啊!
若在清单文件中配置运行会有如下错误提示:
Activity com.zgs.screen.MainActivity has leaked IntentReceiver com.zgs.screen.ScreenReceiver@b6486088 that was originally registered here. Are you missing a call to unregisterReceiver()?二、项目目录结构
二、MainActivity.java代码
package com.zgs.screen;import android.app.Activity;import android.content.IntentFilter;import android.os.Bundle;public class MainActivity extends Activity {private ScreenReceiver screenReceiver;@Overrideprotected 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]添加要注册的actionfilter.addAction("android.intent.action.SCREEN_OFF");filter.addAction("android.intent.action.SCREEN_ON");//[4]注册广播接收者this.registerReceiver(screenReceiver, filter);}@Overrideprotected void onDestroy() {//当activity销毁的时候 取消注册广播接收者unregisterReceiver(screenReceiver);super.onDestroy();}}三、ScreenReceiver.java代码
package com.zgs.screen;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class ScreenReceiver extends BroadcastReceiver {@Overridepublic 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("说明屏幕解锁了~~~");}}}四、操作演示
0 0
- android特殊广播接收者
- 特殊的广播接收者
- android服务_使用服务注册特殊的广播接收者
- android 广播接收者--BroadcastReceiver
- android 广播接收者--BroadcastReceiver
- Android 广播接收者--BroadcastReceiver
- 【android,20】广播接收者
- Android BroadcastReceiver 广播接收者
- Android 广播接收者--BroadcastReceiver
- android 广播接收者--BroadcastReceiver
- android:BroadcastReceiver 广播接收者
- android广播接收者
- Android--广播接收者
- android 广播接收者
- Android广播接收者
- android广播接收者broadcastReceiver
- android广播接收者BroadcastReceiver
- Android广播接收者
- 逗号表达式
- Oracle生成不重复字符串 sys_guid()
- boost::bind的使用方法
- 如何学习高并发
- shell--数组
- android特殊广播接收者
- C++之内联函数
- C++学习笔记(三)
- centos ngnix 配置thinkphp 当模式为2的时候
- redis点滴(六)redis主从复制
- python 3 requests模块
- 重载和重写
- 欢迎使用CSDN-markdown编辑器
- Python 繁体中文与简体中文相互转换