作者:chenjieb520
Service是android四大组件中与Activity最相似的组件,都可以代表可执行的程序。
Service与Activity的区别在于:
(1)、Service一直在后台运行,没有用户界面。
(2)、一旦service被启动之后,就跟Activity一样。有自己的生命周期。所以可以没有Activity。
开发service需要两个步骤:
(1)、定义一个继承service的子类
(2)、在AndroidManifest.xml中配置该Service ,其过程和配置Activity一样。
Service运行有两种方式:
【1】、通过Context的startService()方法,通过该方法启动用Service,访问者与service之间没有关联,即使 访问者退出了,Service仍然运行。
【2】、通过Context的bingSerive()方法,使用该方法启用Service,访问者和service形成关联,即绑定在一 起,访问退出,Service也退出。
而Broadcast Reciver本质是一种全局的监听器,它可以用来组件之间相互通信。它用来接收程序所发出的Broadcast intent,与应用启动Activity,service相同的是:程序启动Broadcast Reciver也是需要两个步骤
【1】、创建Broadcast Reciver的Intent
【2】、调用context的sendBroadcase()或者sendorderBroadcase()方法来启动制定的BroadcastReciver
在笔者下面所演示的代码中,将这个service和Broadcast Reciver结合在一起,可以不需要activity。当程序接收一个Broadcast Reciver的时候,就启动service(service也可以通过activity来启动)。这个例子就是开机自己启动服务。开机的时候会进行广播,我们就将这个广播进行接收,然后开启服务!
//创建LaunchReceiver.java 这是广播接收器
- package ss.pku.edu.cn;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- public class LaunchReceiver extends BroadcastReceiver
- {
- @Override
- public void onReceive(Context context, Intent intent)
- {
- Intent intent1 = new Intent(context , MyService.class);
- // 启动指定Server
- context.startService(intent1);
- }
- }
package ss.pku.edu.cn; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class LaunchReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent intent1 = new Intent(context , MyService.class); // 启动指定Server context.startService(intent1); } }
- package ss.pku.edu.cn;
- import android.app.Service;
- import android.content.Intent;
- import android.os.IBinder;
- public class MyService extends Service
- {
- @Override
- public IBinder onBind(Intent intent)
- {
- return null;
- }
- @Override
- public void onCreate()
- {
- System.out.println("service create");
- }
- }
package ss.pku.edu.cn; import android.app.Service; import android.content.Intent; import android.os.IBinder; public class MyService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { System.out.println("service create"); } }
然后在AndroidManifest.xml 进行添加 权限和action
- <uses-sdk android:minSdkVersion="8" />
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name" >
- <receiver android:name=".LaunchReceiver">
- <intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED"/>
- </intent-filter>
- </receiver>
- <service android:name=".MyService">
- t;/service>
- </application>
<uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <receiver android:name=".LaunchReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> <service android:name=".MyService"> </service> </application>
这样的话,就可以做到开机的时候运行服务,这种方式,相信大家在开发android的时候,会经常被用到。希望这个小知识点能够对大家开发android的过程中有所帮助,欢迎大家批评指教。
相关推荐
本案例简单讲述android的BroadcastReciver使用方式,包括注册广播的两种方式
android 后台启动service监听某个函数的状态是否发生改变,如果改变则 通过broadcast通知Myreceiver,启动另一个activity
Android Activity、Service、Broadcast、Notification四合一例子,Activity中点击按钮启动服务,服务里每4秒发送一次广播,广播接受者每接受到一个发送一条通知。
android service 通过broadcast通知activity.zip
Android创建Service后台常驻服务并使用Broadcast通信,即基于Broadcast通信方式实现了一种Service Thread与Activity异步工作的方法。
简单的实现service和activity共享数据
四大组件 Activity Service content provider broadcast receiver
service通过发送数据给BroadcastReciver传值给activity
Android 应用案例——备忘录,通过一个Android基础应用项目综合应用了Android中的各种组件,包括Activity、Service、Broadcast Receiver、ContentProvider、Intent和View的应用 第18章 Android应用案例——无线点餐...
在Android开发中很少有activity service broadcast 单例的综合使用,我写的这个例子已经能运行了希望能和大家交流学习
Service,Broadcast学习实例
本项目将Android中的Intent总结了一遍。主要有四个项目,Intent_Intent项目是简单的Intent跳转(setActivityResult);Intent_broadcast主要是静态广播的注册;Intent_broadcastdynamic主要介绍动态广播的注册;...
Android应用源码之broadcast_broadcast
Android中关于Broadcast、Intent 的应用,对于初学Android者有较大帮助。
《Android应用开发详解源码》目录第1章 Android概述 第2章 Android开发基础 第3章 Android中的资源访问 第4章 Android用户界面 第5章 Android基本程序单元Activity 第6章 Android组件之间的信使Intent 第7章 Android...
Android 是一个真正意义上的开源智能手机操作系统,该系统由底层的Linux、中间层的软件包和上层的Java应用程序组合而成。该系统一经推出立即受到了全球移动设备厂商和开发者的热捧。 2008年9月22日,美国运营商...
Service与多个Activity通过Broadcast进行交互
利用广播Broadcast Receiver,在2个不同的Activity传递数据
第十一章 android中的多媒体应用 第十二章 android中的图形图像 第十三章 android中的互联网应用 第十四章 android中的GPS应用 第三篇 应用篇 第十五章 android应用案例--移动警务室 第十六章 android应用案例--...
从基础到案例覆盖了Android应用开发的三大领域:基础应用、网络应用和游戏应用。 第一篇 基础篇 第1章 Android概述 1.1 Android的前世今生 1.1.1 Android的产生 1.1.2 Android的发展 1.2 Android的...