android之手机开机启动Service服务

之前,介绍了四大组件的BroadCastReceiver和Service,这次我们利用广播来启动Service服务. 这种实现在很多APP都有出现,比如很多应用安装后,只要使用过一次,后面重启手机它可能就会推送一些消息给用户的手机,在顶栏显示某个应用又有什么消息之类的.这只是Service的行为, 只要成功启动了Service服务,还可以根据需要自定义其他的行为.

关于BroadCastReceiver,这里根据之前的介绍补充一点,就是静态配置和动态配置的不同:

在AndroidManifest.xml里面配置是静态配置,在代码里配置则是动态配置.动态配置比静态配置要快.而静态配置的优点是即使应用没有启动, 也能接收到特定的广播.从而在特定的广播接收器去自定义一些行为.我们应该根据需要去选择不同的实现.

开机启动Service的原理:

手机成功启动后会发出一个ACTION_BOOT_COMPLETED的广播,在应用的AndroidManifest.xml的广播配置里面配置接收这条广播的广播接收器,然后再接收器中启动指定的Service服务.

首先给AndroidManifest.xml加上可以拦截这个广播的权限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

配置广播接收器

<!– 配置广播接收器 –><receiver android:name="com.test.myapp.MyReceiver"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED"></action></intent-filter></receiver>在自定义MyReceiver的onReceive()中去启动指定的Service:public class MyReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {//在这里启动MyServiceIntent intent = new Intent();intent.setAction("com.test.myapp.MyService");context.startService(intent);}}这样就完成了开机启动Service服务,至于要在Service里面去做什么就根据需要去自定义吧. 值得注意是,在3.0以上的系统,该应用必须至少被启动过一次,后面才能成功捕获ACTION_BOOT_COMPLETED广播.

,成功是什么?就是走过了所有通向失败的路,

android之手机开机启动Service服务

相关文章:

你感兴趣的文章:

标签云: