启动广播接收器根本没有运行启动

问题描述:

我有一个类StartupReceiver:启动广播接收器根本没有运行启动

public class StartupReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    Intent service = new Intent(context, ARMRService.class); 
    context.startService(service); 
} 

,并声明它在我的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" /> 

为什么这不起作用???

+0

您的包中的StartupReceiver是为应用程序定义的还是在单独的包中? – iago 2012-03-21 17:39:45

+0

似乎它应该工作,你确定它不只是该服务的问题?您是否曾尝试在BroadcastReceiver中添加日志行或烤面包以查看? – kabuko 2012-03-21 17:41:13

+0

是的,它定义在同一个包中的同一个应用程序中。 – comead 2012-03-21 17:41:51

该代码看起来不错。你可以在onReceive()中添加一些日志,并检查是否在启动时调用它。可能会有一些问题需要启动。

+0

我做到了。是否有可能它没有登录到LogCat,因为调试器尚未附加? – comead 2012-03-21 17:42:16

+0

Logcat会附加在电话启动本身上。你不能在DDMS中获得电话启动日志。理想情况下,它应该可用。仅仅为了调试目的,为什么不用一个虚拟服务替换你的服务? – prijupaul 2012-03-21 18:17:01

+0

它不是服务,因为当我从按钮点击开始它完美的作品。 – comead 2012-03-22 13:40:33