Ответ 1
Я тоже столкнулся с этим. Я предполагаю, что getAppWidgetIds просто запрограммирован на то, чтобы всегда получать все идентификаторы, когда-либо связанные с этим поставщиком виджета. Чтобы решить эту проблему, я должен был сохранить идентификатор Widget в своих общих настройках, сохранив идентификатор в методе onUpdate
и удалив его в методе onDelete
моего AppWidgetProvider.
public class MyProvider extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// Update your widget as normal
// If the Id isn't already saved to your db/app preference, save it now
}
public void onDeleted (Context context, int[] appWidgetIds) {
// Remove each id passed in through appWidgetIds
// "un-save" them from your db or app preferences
}
}