Android widget 有办法接收系统广播吗?
我想接收用户改变系统时间的通知
有没有什么办法?

解决方案 »

  1.   


    当然可以了,widget本身就是broadcast接收器,
      

  2.   

    那就没问题了,在你的widget的manifest文件中配置上要接收的广播
      

  3.   


    我开始也是这样认为的,但是实际他并不能接收系统的广播,他只能接收和该我widget相关的广播
    所以,我想接收
    <action
    android:name="android.intent.action.TIME_TICK" />
    这个系统时间的广播还是不行
      

  4.   

    不仅可以接收广播,还可以直接获取该桌面组件的对象。比如下面这段代码:
    private static PlayerAppWidgetProvider sInstance; 
    static synchronized PlayerAppWidgetProvider getInstance() { 
    if (sInstance == null) { 
    sInstance = new PlayerAppWidgetProvider(); 

    return sInstance; 
    }
      

  5.   

    系统时间的广播就可以接受啊 看看音乐播放器的widget
      

  6.   


    没看到系统的音乐播放器wideget有用系统广播。        <receiver android:name="com.android.music.MediaAppWidgetProvider">
                <intent-filter>
                    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                </intent-filter>
                <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_info" />
            </receiver>他甚至连onReceive()方法都没有麻烦给我说一下
      

  7.   

    用service在后台运行截获系统所发出的通知,当得到通知的时候使用service对widget进行内容更新
      

  8.   

    除了我上面说的TIME_TICK无法接受到 其他都没问题
    你可以收听 TIME_SET这个广播
      

  9.   

    TIME_TICK这个广播要动态注册的  也就是在java代码里面注册
      

  10.   

    service对widget进行内容更新,具体怎么写呀,我在service里面发送的广播怎么在widget端收不到呢???
    求解,求解呀,谢谢大家了