android上怎样让一个Service开机自动启动
展开全部
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);//启动倒计时服务//这边可以添加开机自动启动的应用程序代码}}}
2015-09-08 · 知道合伙人软件行家
关注
展开全部
Android开机启动Service,需要使用BroadcastReceiver,Android系统,开机会发送一个开机广播,可以通过BroadcastReceiver来接收开机广播。
具体代码:
1.在配置文件AndroidManifest.xml中向系统注册receiver
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
2.需要添加相应权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
3.在Receiver中就可以添加开机需要进行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
4.执行开机后的操作,Intent intent = new Intent(context,Service.class); context.startService(intent); 这样即可开机启动Service了。
具体代码:
1.在配置文件AndroidManifest.xml中向系统注册receiver
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
2.需要添加相应权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
3.在Receiver中就可以添加开机需要进行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
4.执行开机后的操作,Intent intent = new Intent(context,Service.class); context.startService(intent); 这样即可开机启动Service了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询