控制AppWidget实例的数量

时间:2013-08-26 17:34:38

标签: android android-appwidget

我想为我的Android应用创建一个小部件,显示一些有关位置的实时详细信息,例如天气。但我希望允许在任何时间点最多3个小部件实例,每个实例具有不同的位置。我不知道如何去做,也找不到任何信息。

我的问题是:

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

1 个答案:

答案 0 :(得分:0)

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

  1. 向所有应用小工具发送一个意图,看看它们是否仍然存在,并计算它们,最后只知道它们有多少。但是,我不知道你怎么知道何时停止计数。

  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. 无论如何,如果有太多(在你的情况下是4或更多),只需显示新小部件的替代布局。

    您还需要处理删除应用小部件(未禁用的小部件)以便启用新小部件(并减少计数器)的情况,或者您可以让用户单击已禁用的小部件来触发再次检查。

    关于限制创作本身,我不认为这是可能的,但正如我写的那样,可以计算它们并禁用新的。

    请注意,用户可能会在多个应用上提供应用小工具。它甚至不必是一个显示你的应用程序小部件的启动器。也不确定如果有多个用户(在Android 4.2及更高版本上可用)它将如何工作。