我正在创建一个world_clock小部件,可以将其放置在桌面上。 对于小部件,我可以选择要使用的时区。 我现在遇到的唯一问题是,当我选择时区时,将其存储在共享首选项中并发送广播以更新时钟,我的所有小部件实例都会更新。
这里的问题似乎是我所有的小部件实例都具有相同的小部件ID。我使用以下代码检索ID。
val thisWidget = ComponentName(context, WorldClockWidget::class.java)
val manager = AppWidgetManager.getInstance(context)
val appWidgetIds = AppWidgetManager.getInstance(context).getAppWidgetIds(thisWidget)
我还考虑过使用小部件的位置将数据存储在共享首选项中。但是问题是,如果不单击它,我将无法获得窗口小部件的位置。 (单击后,您可以使用sourceBounds获取该位置,但如果没有此方法,我还没有找到一种方法。
有没有一种方法可以分别存储小部件的数据。 还是有一种无需单击即可获取小部件位置的方法?
亲切的问候,
JKorsten