Service两种不同的调用方式以及BroadcastReceiver两种不同的注册方式
来源:互联网 发布:发货清单打印软件 编辑:程序博客网 时间:2024/04/29 06:09
一、Service
如果把Activity比喻为前台程序,那么Service就是后台程序,Service的整个生命周期都只会在后台执行。Service跟Activity一样也由Intent调用。在工程里想要添加一个Service,先新建继承Service的类,然后到AndroidManifest.xml -> Application ->Application Nodes中的Service标签中添加。
Service要由Activity通过startService 或者 bindService来启动,Intent负责传递参数
1、startService中,service的生命周期为onCreate-->onStart-->onDestroy(由startService开始的service必须调用stopService才能终止service的运作,不调用stopService,那么即使Activity.finish()了Service还是在运作)
2、bindService中,service的生命周期为onCreate-->onBind-->【Activity.finish()】-->onUnbind-->onDestroy(由bindService开始的service可以用onunbindService停止service运作,也可以在一个Activity finish以后自动unbindService停止运作)
二、BroadcastReceiver
1、BroadcastReceiver接受并处理自定义Action广播通知,Receiver的注册一般分为动态注册和静态注册,动态注册就是通过API registerReceiver来注册,静态的一般就是写在AndroidManifest.xml
2、步骤
A、动态注册:
【1】 registerReceiver(BroadcastReceiver, new IntentFilter(String actionAddress)); //我自己设定的actionAddress的值为com.woody.testCase.Internal_1,IntentFilter为结构化描述intent匹配的信息,必须包含action,可包含data与category
【2】创建BroadcastReceiver类(BroadcastReceiver receiver = new BroadcastReceiver()),并实现它的onReceive(Context context,Intent intent)方法 //context值为之前的actionAddress,也就是com.woody.testCase.Internal_1,得到传过来的值可通过调用intent.getAction()来获取
【3】基本工作都做好了,接下来就应该通知receiver了
Intent intent = new Intent(actionAddress); //值为刚才的com.woody.testCase.Internal_1
sendBroadcast(intent);
B、静态注册:
【1】AndroidManifest.xml中add Receiver节点,如下:
<receiver android:name="clsReceiver2">
<intent-filter>
<action
android:name="com.woody.testCase.Internal_2"/>
</intent-filter>
</receiver>
【2】在外新建个Receiver类,并继承BroadcastReceiver类,实现onReceive,具体代码与之前动态的雷同
【3】通知receiver
- Service两种不同的调用方式以及BroadcastReceiver两种不同的注册方式
- BroadcastReceiver的两种注册方式
- 安卓中BroadcastReceiver 注册的两种方式
- 安卓中BroadcastReceiver 注册的两种方式
- BroadcastReceiver两种注册方式的使用方法
- android 启动service的两种方式有什么不同
- BroadcastReceiver的两种方式
- Symfony 两种不同的安装方式
- String两种不同的赋值方式
- Integer两种不同的赋值方式
- 线程的两种不同实现方式
- TabHost两种不同的实现方式
- 读取不同格式文件的两种方式
- android ,BroadcastReceiver广播的两种不同方式的用法及区别
- BroadcastReceiver的两种注册方式和使用
- BroadcastReceiver广播接收者的两种注册方式
- BroadcastReceiver广播接收者的两种注册方式
- BroadcastReceiver广播接收者的两种注册方式
- Android游戏开发之小球重力感应实现
- js 引擎 JavaScriptCore
- asp.net 如何设定全局变量
- 公平
- (二)C系程序员面试必知必会之数组和指针不是问题
- Service两种不同的调用方式以及BroadcastReceiver两种不同的注册方式
- asp.net 格式化
- XP下硬盘安装Ubuntu 10.04 组成双系统
- c#相关
- 将按钮添加进去 this.Contorls.Add(btn)
- doGet doPost
- asp.net 模板列
- inside src/dst和outside src/dst区别详解
- 为什么点击ListView其中的选项时,item背景会出现难看的横线。