Android四大组件之BroadCast(续)

时间:2022-06-18 09:30:38

1.哪一个方法可以发送广播?

activity.sendbroadcast or context.sentbroadcast or service.sendbroadcast

2.创建广播接受程序必须继承那个类?

BroadcastReceiver

3.广播接受程序有哪些参数?

public void onReceive(Context context, Intent intent)

//The Context in which the receiver is running

//The Intent being received

4.如何注册广播接受程序?

        <receiver
android:name="com.htc.globalsearch.imagesearch.service.provider.ImageSearchReceiver"
android:exported="false" >
<intent-filter>
<action android:name="com.htc.intent.action.REBUILDIMAGE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>

5.如何指出你对特点广播感兴趣? </intent-filter>

6.外部程序是否可以接收广播?

广播的接受看intent-filter 以及permission,满足这个就可以接受。

7.如何访问通知管理器?

mNotificationManager = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);

8.Intentservice的目标是什么?

IntentService是一个通过Context.startService(Intent)启动可以处理异步请求的Service,使用时你只需要继承IntentService和重写其中的onHandleIntent(Intent)方法接收一个Intent对象,在适当的时候会停止自己(一般在工作完成的时候). 所有的请求的处理都在一个工作线程中完成,它们会交替执行(但不会阻塞主线程的执行),一次只能执行一个请求。

也就是说,intentservice会启动一个service并且启动线程处理程序,而不会阻塞主线程。

IntentService 实际上是Looper,Handler,Service 的集合体,他不仅有服务的功能,还有处理和循环消息的功能.

14.有许多客户端调用intentservice,那么与客户端对应的thread是多少?

1个。所有的操作都在一个线程内执行。通过looper,handle机制来保证同步!

service要处理复杂任务的话,可以通过Looper,Handler的方式在线程内循环,然后通过aidl的方式连接远程service。

15.wakefulintentservice 是什么?