0
我想允許添加一個Widget的小部件的一個實例,我試圖把一個布爾標誌,我有:如何只允許Android的
內WidgetConfig:
public final static String ADDED_KEY = "IsAdded";
public static boolean isAdded = false;
的onCreate(內側WidgetConfig)
isAdded = prefs.getBoolean(ADDED_KEY, false);
if (isAdded){
Toast.makeText(this.getApplicationContext(), "Only one Widget", Toast.LENGTH_SHORT).show();
finish();
}
[...]
editor.putBoolean(ADDED_KEY, true); //disable adding here
editor.commit();
內部WidgetProvider延伸的AppWidgetProvider
public void onDisabled(Context context) {
super.onDisabled(context);
[...]
//cancel alarm
configEditor.putBoolean(WidgetConfig.ADDED_KEY, false); //enable adding here
configEditor.commit();
}
public void onDeleted(Context context, int[] appWidgetIds){
super.onDeleted(context, appWidgetIds);
//I should not need this if there is only one widget
}
但它並不總是工作。 我該怎麼辦?謝謝
isAdded = prefs.getBoolean(ADDED_KEY,false); <---您是否知道如果沒有值從首選項中檢索,那麼這裏的「false」只是defaultValue? – bofredo
這是開始配置小部件時的第一個命令 如果第一次添加小部件isAdded沒有值,那麼默認值爲false 在將值更改爲true後添加爲「//禁用此處添加「 ,然後當我刪除小部件(onDisabled)時有望返回false,有時它有效,有時不起作用 – user1719863