我想为我的 Android 应用程序创建一个小部件,以显示有关位置的一些实时详细信息,例如天气。但我想在任何时候允许最多 3 个小部件实例,每个实例都有不同的位置。我不确定该怎么做,也找不到任何信息。
我的问题是:
- 可创建的 appWidget 实例数量是否有限制?
- 如何限制用户随时可以创建的小部件实例的数量?
最佳答案
有多种方法可以计算我能想到的应用程序小部件:
向您所有的应用程序小部件发送一个 Intent ,以查看它们是否仍然存在,并对它们进行计数,只有到最后您才会知道有多少。但是,我不确定您如何知道何时停止计数。
不确定它是否有效,但也许你可以使用:
final ComponentName cn=new ComponentName(context,YourAppWidgetProviderClass.class); int[] appWidgetsIds=appWidgetManager.getAppWidgetIds(cn);
并检查结果的大小。
根据在 AppWidgetProvider 类的 onReceive() 方法中接收 ACTION_APPWIDGET_DELETED(或 ACTION_APPWIDGET_DISABLED)和 ACTION_APPWIDGET_BIND(或 ACTION_APPWIDGET_ENABLED)操作来更新计数器。
无论如何,如果有太多(在您的情况下是 4 个或更多),只需为新小部件显示一个替代布局即可。
您还需要处理删除应用小部件(未禁用的小部件)的情况,以便启用新的小部件(并减少计数器),或者您可以让用户点击已禁用的小部件以触发再次检查。
关于限制创建本身,我认为这是不可能的,但正如我所写的,可以对它们进行计数并禁用新的。
请注意,用户可能会在多个应用程序上使用该应用程序小部件。它甚至不必是显示您的应用程序小部件的启动器。也不确定在有多个用户的情况下它会如何工作(适用于 android 4.2 及更高版本)。
关于android - 控制 AppWidget 实例的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18449714/