码迷,mamicode.com
首页 > 移动开发 > 详细

android清除数据后widget无法更新问题修改

时间:2014-11-21 18:51:29      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:android   blog   io   ar   java   文件   数据   on   2014   

清除数据时会发送ACTION_PACKAGE_DATA_CLEARED广播,在widgetProvider里面监听该广播并进行处理就可以了


 public static class PackageDataClearedReceiver extends BroadcastReceiver {
        private static final String ACTION_PACKAGE_DATA_CLEARED = "com.mediatek.intent.action.SETTINGS_PACKAGE_DATA_CLEARED";

        public void onReceive(Context context, Intent intent) {
            if (!ACTION_PACKAGE_DATA_CLEARED.equals(intent.getAction())) {
                return;
            }
            String pkgName = intent.getStringExtra("packageName");
            MusicLogUtils.v(TAG, "PackageDataClearedReceiver recevied pkgName = " + pkgName);
            if (pkgName != null && pkgName.equals(context.getPackageName())) {
                MediaAppWidgetProvider mediaAppWidgetProvider = MediaAppWidgetProvider
                        .getInstance();
                if (mediaAppWidgetProvider == null) {
                    MusicLogUtils.v(TAG, "mediaAppWidgetProvider is null ");
                    return;
                }
                mediaAppWidgetProvider.defaultAppWidget(context, null);
            }
        }

    }

defaultAppWidget()函数会重新加载widget信息和布局文件,这样就可以恢复默认值了。
最后别忘了在AndroidManefest.xml里面加上:

        <receiver android:name="com.android.music.MediaAppWidgetProvider$PackageDataClearedReceiver" >
            <intent-filter>
                <action android:name="com.mediatek.intent.action.SETTINGS_PACKAGE_DATA_CLEARED" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>


android清除数据后widget无法更新问题修改

标签:android   blog   io   ar   java   文件   数据   on   2014   

原文地址:http://blog.csdn.net/chaihuasong/article/details/41351747

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!