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>

更多相关文章

  1. 研究 android apk安装卸载等 产生的 系统广播
  2. Android(安卓)输入分析
  3. Android系统的四大组件详解
  4. android拾遗——四大基本组件介绍与生命周期
  5. Service通过Broadcast更新UI
  6. android Activity之间跳转。
  7. Android(安卓)4.0 注册广播问题
  8. Android在广播接收器里启动活动和弹出对话框
  9. Android中实现长按照片弹出右键菜单

随机推荐

  1. Android 实现 WheelView
  2. Android(安卓)Studio导入Fresco
  3. Android模拟器简介—更新到最新的3.0 Hon
  4. Android(安卓)电源管理 (部分转载)
  5. Android Property Animation属性动画初识
  6. Android复杂数据模型序列化
  7. Android surfaceflinger(3)-DisplayDevice
  8. android studio打jar包并添加三方包
  9. android SharedPreferences(供选项使用)
  10. android手机打电话代码分析