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 {
		 
	    @Override
	    public void onReceive(Context context, Intent intent) {
	    	//在这里启动MyService
	        Intent intent = new Intent();
	        intent.setAction("com.test.myapp.MyService");
	        context.startService(intent);
	    }
	}

这样就完成了开机启动Service服务,至于要在Service里面去做什么就根据需要去自定义吧. 值得注意是,在3.0以上的系统,该应用必须至少被启动过一次,后面才能成功捕获ACTION_BOOT_COMPLETED广播.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值