Java 启动广播接收器在启动时未运行
我有一个班级:Java 启动广播接收器在启动时未运行,java,android,service,broadcastreceiver,Java,Android,Service,Broadcastreceiver,我有一个班级: public class StartupReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent service = new Intent(context, ARMRService.class); context.startService(service); } 它在my Manifest.xml中声
public class StartupReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, ARMRService.class);
context.startService(service);
}
它在my Manifest.xml中声明为
<receiver android:name=".StartupReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
我已经给予了正确的许可:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
为什么不起作用?我觉得代码不错。能否在onReceive中添加一些日志,并检查是否在启动时调用这些日志。要启动的服务中可能存在一些问题。是在您的包中为应用程序定义了StartupReceiver,还是在单独的包中定义了StartupReceiver?它似乎应该可以工作,您确定这不仅仅是该服务中的问题吗?您是否尝试在您的BroadcastReceiver中添加日志行或toast以查看?是的,它在同一程序包中的同一应用程序中定义。@kabuko我已添加了日志,但它没有打印它。然而,这项服务并没有什么问题,因为当我从按钮点击启动它时,它工作得非常好。只是不是刚开始的时候…我做了。有没有可能因为调试器还没有连接,所以它没有登录到LogCat?LogCat会在手机启动时连接。不要在DDMS中获取手机启动日志。理想情况下,它应该是可用的。出于调试目的,为什么不将您的服务替换为虚拟服务?这不是服务,因为当我从按钮单击启动它时,它工作得非常好。您好,我刚刚了解到,从Android 3.0开始,用户需要至少启动一次应用程序,您的应用程序才能接收Android.intent.action.BOOT\u完成的事件。这是否可能是IT没有启动服务的原因?