自定义意图广播不起作用

时间:2011-04-16 17:27:38

标签: android android-intent

我正在尝试向我的服务发送一个基于IntentService的自定义意图,但是当我执行context.sendBroadcast时,似乎没有任何事情发生。我已经检查了logcat日志,甚至看不到意图解析失败。

我的Android.xml中的服务注册是

  <service android:name=".Service.FbSlideShowService" android:enabled="true" >
        <intent-filter>
            <action android:name="com.test.fbslide.UPDATE_WALLPAPER" />
             <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </service>

我正在尝试从我的活动线程上的助手类发送广播并使用传递上下文,我尝试以两种方式发送它:

    Intent changeWallpaperIntent = new Intent(mContext, FbSlideShowService.class);
    mContext.sendBroadcast(changeWallpaperIntent);

 Intent changeWallpaperIntent = new Intent(FbSlideShowService.UPDATE_WALLPAPER_INTENT, null);
 mContext.sendBroadcast(changeWallpaperIntent);

但广播不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

当您拥有BroadcastReciever时,sendBroadcast可以正常运行。但你在这里有一个sevice

<service android:name=".Service.FbSlideShowService" android:enabled="true" >
    <intent-filter>
        <action android:name="com.test.fbslide.UPDATE_WALLPAPER" />
         <action android:name="android.intent.action.BOOT_COMPLETED" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</service>

您的清单条目表明它是service

您需要使用mContext.startService()来启动该服务。

如果您想在设备启动时启动服务,可以参考this answer