android - 从主屏幕动态删除 Android Widget

标签 android android-widget

我需要在从配置 Activity 中按回后删除一个主屏幕小部件实例,因为我希望它被完全删除,而不是因为 issue 2539 而留在“边缘”。 .因此,这些修复之一会很好:

  1. 修复问题 2539,让小部件实例从主屏幕和“limbo”中优雅地消失
  2. 让程序员通过具有指向主屏幕的正确 ID 的 AppWidgetHost 执行此操作(证明此安全漏洞)。 (有趣的尝试描述了 here )

现在这些有可能吗?

最佳答案

我自己解决了,只处理了两个 bool 标志。 这是我在扩展 AppWidgetProvider 的类上所做的

public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {
    super.onUpdate(context, appWidgetManager, appWidgetIds);
    SharedPreferences settings = context.getSharedPreferences(SHARED_PREFERENCES, 0); 

    for(int widgetId:appWidgetIds)
    {   
        boolean configured = settings.getBoolean(CONFIGURED_PREFERENCE+widgetId, false);    //In order to skip initial UpdateService
        boolean widget= settings.getBoolean(WIDGET_PREFERENCE+widgetId, false);
         if(!widget && configured) continue;   // In order to skip phantom Widgets update


    if(!configured)
    {   

     SharedPreferences.Editor editor = settings.edit();
     editor.putBoolean(CONFIGURED_PREFERENCE+widgetId, true);
           editor.commit();
        }
    else
    {    Intent updateService=new Intent(context, UpdateService.class);          
        updateService.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,widgetId);
         context.startService(updateService);
    }   


  }

}

关于android - 从主屏幕动态删除 Android Widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307270/

相关文章:

android - 谷歌是如何做到这一点的?在 Android 应用程序中滑动 ActionBar

android - 如何为 android 创建收件箱样式(带有未读计数)小部件?

android - 为 Android 按钮属性分配负值

android - 如何使用 ionic-cli 使用 Crosswalk lite 构建 android?

android - 我如何在android中实现选择和突出显示文本

android - 这是一个标准的android组件吗?

java - Guava 文件缓存

android - 简化构建多个可执行文件的 Android.mk 文件

android - 从 DialogFragment 中的 EditText 获取文本

java - 当指定仅使用 wifi 时,ConnectivityManager Network 为 null