广播与服务

2016-05-10  本文已影响0人  fantasy_dandan

广播接收者

IP拨号器

定义方式

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
代码

短信防火墙原理

短信防火墙 短信接收器

需要的权限:

<uses-permission android:name="android.permission.RECEIVE_SMS"/>
注册接收器

可以取大于1000的数,取整数的最大值

监听SD卡状态

监听SD卡不需要权限

注册监听器设置要监听的Action
监听SD卡

开机勒索软件

注册广播接收器 加入权限
广播接收器代码 创建任务栈

应用的安装卸载和更新

发送自定义广播

有序和无序广播

发送有序广播 设置结果接收器 设置接收者
设置接收者优先级

服务

服务的启动和停止

通话录音机

使用完MediaRecorder释放资源为什么要release()
电话权限

服务的两种启动方式及生命周期

startService

bindService

不能再次解绑的,重复解绑会报错。
绑定服务后,直接按返回键会报错。说明绑定服务不能作为后台操作

返回错误

调用服务中的方法

对比办证服务

回调类ServiceConnection

服务连接回调

把中间人的方法抽取到接口中

抽取接口
实现抽取方法
强转

为什么要这么做,不私有化方法呢?

模拟音乐播放器

混合启动Service(startService和bindService)

start->bind->unbind->stop
因为要保证音乐播放器退出后音乐还在播放,就必须启动服务进程

使用代码注册和反注册广播接受者

清单文件注册

代码注册

通常和service联系在一起,一般启动服务来注册。

定义服务并在创建中注册广播在销毁中注销广播 定义广播接收器 注册和反注册时需要注意的

启动和绑定远程服务

服务的分类

都是在手机上与web不一样

本地服务

远程服务

本地服务使用显示启动
远程服务使用隐式启动

注意:Android 5.0 之后 Service必须显示启动,不然会报错

Service隐式启动会报错

解决方案

解决方法

远程服务中使用aidl

进程间通信

步骤:

远程Service

1.把接口文件的后后缀名.aidl;(在gen中自动生成.java文件)
2.aidl文件中的所有东西都是public ,不需要访问修饰符;
3.中间人对象继承Stub,这个抽象类Stub已经继承了Binder并实现了aidl里面的方法。


远程Service

访问远程服务

1.把上述的aidl文件复制到访问远程服务的工程中,然后aidl所在的包名必须和远程Service中的aidl一致。

2.把获取的中间人对象使用Stub.asInterface强转。

访问远程Service

支付宝远程服务

不安全做法 安全做法

进程优先级的补充

确定取消对话框

设置对话框

单选对话框

setMessage 是绝对不能设置的,会将单选内容盖掉。

单选对话框

设置多选对话框

设置多选对话框

设置进度条对话框

设置进度条对话框

样式和主题

国际化

国际化

图片也能国际化:


图片国际化
上一篇下一篇

猜你喜欢

热点阅读