您可能不想在
getDefaultSharedPreferences这里使用。所有小部件共享相同的默认共享首选项,因此它们将不断相互覆盖。
我在自己的应用程序中也遇到相同的情况,因此我为每个小部件使用了自定义首选项文件。您可以使用widgetID来命名首选项文件,然后每个小部件将始终获得其自己的唯一首选项集。
在配置PreferenceActivity中:
this.getPreferenceManager().setSharedPreferencesName("widget" + String.valueOf(mAppWidgetId));这会将所有PreferenceActivity设置存储到以小部件ID命名的首选项文件中。
然后在小部件本身中,只需检索对应于其ID的文件即可:
preferences = context.getSharedPreferences( "widget" + String.valueOf(appWidgetId) , Context.MODE_PRIVATE);
并像平常一样检索首选项。



