Service and Broadcast

本文深入探讨了Android操作系统的广播机制,包括如何通过注册BroadcastReceiver接收广播,并提供了使用代码实现注册和注销广播的示例。同时,阐述了Service在Android应用中的作用,以及如何在后台执行长时间任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Service and Broadcast

这里我们首先要说的是android的广播机制,它的形式是这样的:
应用程序或者系统服务向android操作系统注册一个BroadcastReceiver(广播接收器),并在这个BroadcastReceiver
中设置它想要接收的广播。这样子,一旦系统中出现了这样一个或一些广播(广播可以来自它自己或者其他应用程序),
就会查找是否有应用程序注册了receiver,如果有就通知它们,否则就什么都不做。
註冊廣播有種方式,一種是在代碼裏面,另外一種是在AndroidManifest.xml裏面。
一般推薦後者,因為易於代碼維護,有系統幫我們注冊和註銷。
下面使用代碼註冊和註銷廣播。

而Service的用途又是什麽?常常用来在后台进行一些长时间的操作,例如播放音乐,音频解码,下载数据等等。

參考代碼:

public class MyService extends Service {
//这一个是Service的接口,也是一个抽象方法
@Override
public IBinder onBind(Intent intent) {
return null;
}
//以下这些是Service的生命周期方法
//Service被创建
@Override
public void onCreate() {
// Code here
super.onCreate();
}

//Service被启动
@Override
public void onStart(Intent intent, int startId) {
/* 注册广播接收器 */
serviceReceiver = new ServiceReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(".MyService");
//可以add多個action
registerReceiver(serviceReceiver, filter);
super.onStart(intent, startId);
}

//Service被销毁
@Override
public void onDestroy() {
/* 取消注册的serviceReceiver*/
this.unregisterReceiver(serviceReceiver);
super.onDestroy();
}

//Service被暂停,挂起
public void onPause() {
//Code here
}

/* 繼承BroadcastReceiver,編寫自己的广播接收器 */
class ServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//code here, do what u wanna do
}
}
}
}


另:在xml文件中註冊廣播如下。(將ServiceReceiver獨立成1個類)
<receiver android:name=".ServiceReceiver">
<intent-filter>
<action android:name=".MyService" />
<!-- 可以有多個 -->
</intent-filter>
</receiver>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值