android怎么让一个service开机自动启动

 我来答
兄弟连教育
2016-05-03 · 百度知道合伙人官方认证企业
兄弟连教育
兄弟连教育成立于2006年,11年来专注IT职业教育,是国内专业的IT技术培训学校。2016年成功挂牌新三板(股票代码:839467)市值过亿。开设专注程序员培训专注php、Java、UI、云计算、Python、HTML5、
向TA提问
展开全部
1.
首先开机启动后系统会发出一个Standard Broadcast Action,名字叫
android.intent.action.BOOT_COMPLETED
,这个Action只会发出一次。2.
构造一个IntentReceiver类,
重构其抽象方法onReceiveIntent(Context context, Intent intent),
在其中启动你想要启动的Service。3.在AndroidManifest.
xml中,首先加入
<uses-permission android:name=android.permission.RECEIVE_BOOT_COMPLETED</uses-permission
来获得BOOT_COMPLETED的使用许可,然后注册前面重构的IntentReceiver类,在其
<intent-filter中加入<actionandroid:name=android.intent.action.BOOT_COMPLETED /
,以使其能捕捉到这个Action。一个例子xml:<uses-permission android:name=android.permission.RECEIVE_BOOT_COMPLETED</uses-permission
<receiver android:name=.OlympicsReceiver android:label=@string/app_name
<intent-filter
<action android:name=android.intent.action.BOOT_COMPLETED /
<category android:name=android.intent.category.LAUNCHER /
</intent-filter
</receiverjava:public class OlympicsReceiver extends IntentReceiver{/*要接收的intent源*/
static final String ACTION = android.intent.action.BOOT_COMPLETED;
public void onReceiveIntent(Context context, Intent intent){if (intent.getAction().equals(ACTION)){context.startService(new Intent(context,
OlympicsService.class), null);//启动倒计时服务
Toast.makeText(context, OlympicsReminder service has started!, Toast.LENGTH_LONG).show();}}}注意:现在的IntentReceiver已经变为BroadcastReceiver,OnReceiveIntent为onReceive。所以java这边的代码为:
(也可以实现应用程序开机自动启动)
public class OlympicsReceiver extends BroadcastReceiver{/*要接收的intent源*/
static final String ACTION = android.intent.action.BOOT_COMPLETED;
public void onReceive(Context context, Intent intent){if (intent.getAction().equals(ACTION)){context.startService(new Intent(context,
OlympicsService.class), null);//启动倒计时服务//这边可以添加开机自动启动的应用程序代码}}}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式