Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 启动广播接收器在启动时未运行_Java_Android_Service_Broadcastreceiver - Fatal编程技术网

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没有启动服务的原因?