android - 控制 AppWidget 实例的数量

标签 android android-appwidget

我想为我的 Android 应用程序创建一个小部件,以显示有关位置的一些实时详细信息,例如天气。但我想在任何时候允许最多 3 个小部件实例,每个实例都有不同的位置。我不确定该怎么做,也找不到任何信息。

我的问题是:

  1. 可创建的 appWidget 实例数量是否有限制?
  2. 如何限制用户随时可以创建的小部件实例的数量?

最佳答案

有多种方法可以计算我能想到的应用程序小部件:

  1. 向您所有的应用程序小部件发送一个 Intent ,以查看它们是否仍然存在,并对它们进行计数,只有到最后您才会知道有多少。但是,我不确定您如何知道何时停止计数。

  2. 不确定它是否有效,但也许你可以使用:

    final ComponentName cn=new ComponentName(context,YourAppWidgetProviderClass.class);
    int[] appWidgetsIds=appWidgetManager.getAppWidgetIds(cn);
    

    并检查结果的大小。

  3. 根据在 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/

相关文章:

android - 有没有办法从中心偏移 View ?

javascript - react native : selectable section list view gives error

android - JSON 错误 "org.json.JSONException: End of input at character 0 of "

android - Instagram 如何在故事模式中增加背景中的图像颜色

android - 如何从 Android 应用程序小部件获取 GPS 位置?

android - AppWidgetProvider中的屏幕监控服务 : high memory usage

android - 不兼容的Gradle版本-Android

android - 为什么主屏幕上有一个隐藏的 appWidget?

android - 小部件中的图像

android - onGetViewFactory 未调用