我正在尝试向我的服务发送一个基于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);
但广播不起作用。
有什么想法吗?
答案 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。