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编译系统分析一:source build/envs
  2. Android ANR 分析(转载)
  3. 实现三星S3蒲公英水波纹效果(二)——Rend
  4. Android UI开发第三十九篇――Tab界面实
  5. Android 应用界面显示流程
  6. 【Android教程】Android Studio找不到连
  7. 可靠的功能测试--Espresso和Dagger2
  8. 解决 Android(安卓)中使用ListView和Chec
  9. 第一篇 入门必备 (Android学习笔记)
  10. Android进程说明