我想知道为什么在设备完成启动时Service
无法启动。
我希望当设备启动时,Service
启动,但这不会发生,因为启动它我必须先打开应用程序。
到目前为止,这是我的代码:
public class BootService extends BroadcastReceiver{
Intent intent;
@Override
public void onReceive(Context context, Intent intent2) {
intent = new Intent(context, MyService.class);
context.startService(intent);
}
}
答案 0 :(得分:1)
是否调用了BootService?
要在引导完成时触发BootService,您需要添加清单:
1)
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
2)
<receiver android:name="BootService" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
答案 1 :(得分:0)
在java文件中添加以下行
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
它应该适用。
答案 2 :(得分:0)
要让您的应用程序接收android.intent.action.BOOT_COMPLETED
意图,您需要先在设备上运行Activity
。
尝试制作虚拟活动,配置或应用介绍。
除此之外,将日志语句放入BroadcastReceiver
和Service
的想法是个好主意。
同时确认您已关注djodjo's suggestions,因为这些也是正确的。