Android初级教程使用服务注册广播接收者监听手机解锁屏变化
来源:互联网 发布:淘宝网卡包 编辑:程序博客网 时间:2024/05/22 03:46
之前第七章广播与服务理论篇写到:
特殊的广播接收者(一般发广播次数频率很高)
- 安卓中有一些广播接收者,必须使用代码注册,清单文件注册是无效的
- 屏幕锁屏和解锁
- 电量改变
需求:使用服务注册广播接收者,广播接收者接收系统锁屏解屏广播,并执行相应的操作(这里还是打印一行log)。
方法:一、activity前台两个按钮,对应两个功能:1、启动服务;2、停止服务。
二、定义服务类,在onCreate方法里面注册广播接受者,指定意图过滤器action为系统解锁屏的action意图;在onDestroy方法里取消注册广播(停止广播)
三、自定义能接收服务的广播接收者,来监听手机锁屏解屏的变化
代码写了出来:
MainActivity:
package com.example.register;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {private Intent intent;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);intent = new Intent(this, RegisterService.class);}public void start(View v) {//开启服务按钮startService(intent);}public void stop(View v) {//停止服务按钮stopService(intent);}}RegisterService:
package com.example.register;import android.app.Service;import android.content.Intent;import android.content.IntentFilter;import android.os.IBinder;public class RegisterService extends Service {private ScreenReceiver receiver;@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();receiver = new ScreenReceiver();IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_SCREEN_OFF);filter.addAction(Intent.ACTION_SCREEN_ON);registerReceiver(receiver, filter);}@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy(); unregisterReceiver(receiver);}}
自定义ScreenReceiver:
package com.example.register;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class ScreenReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (Intent.ACTION_SCREEN_OFF.equals(action)) {System.out.println("屏幕关闭了");} else if (Intent.ACTION_SCREEN_ON.equals(action)) {System.out.println("屏幕开启了");}}}
当手机锁屏时,打印log: 屏幕关闭了
当再次解屏是,打印log: 屏幕开启了
0 0
- Android初级教程使用服务注册广播接收者监听手机解锁屏变化
- Android-使用服务注册广播接收者
- Android 使用服务注册广播接收者
- 使用服务注册广播接收者
- android服务_使用服务注册特殊的广播接收者
- Android中动态(在类中)注册广播接收者,监听网络变化
- 使用服务注册特殊广播接收者
- Android 监听开机广播启动服务 动态注册时间变化监听广播
- 利用广播接收者监听Android系统网络变化
- android,利用广播接收者调用服务的方法,代码注册广播接收者
- 47.android服务service-代码注册广播接收者
- Android-广播接收者;短信监听
- 使用广播接收者监听短信
- Androidx学习笔记(67)--- 使用代码注册广播接收者(实现屏幕锁屏和解锁)
- Android 动态注册广播接收者
- android 解决 广播接收者监听网络变化会受到两次广播
- android 使用广播监听网络状态变化
- Android监听时间变化的广播,只能动态注册
- 开启mysql 事件任务计划
- git merge 和 git rebase 小结 #写得非常好
- CentOS设置用户句柄数与用户进程数
- JAVA_AES加密
- 一个关于位运算的小题目,基础差真可怕
- Android初级教程使用服务注册广播接收者监听手机解锁屏变化
- web项目中获取spring的bean对象
- 您所不知道的nil/Nil/NULL/NSNull的空与空
- 基于稀疏矩阵的k近邻(KNN)实现
- 文章标题
- HBaseCon 2013: Using Coprocessors to Index Columns in an Elasticsearch Cluster
- Android进程间通信之Socket
- Java容器类的深入理解
- 数据挖掘之七种常用的方法