android – AppWidget:在某些设备上配置活动完成后,不会显示实例

前端之家收集整理的这篇文章主要介绍了android – AppWidget:在某些设备上配置活动完成后,不会显示实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在主屏幕上添加appwidget的新实例时,我在某些设备上遇到了奇怪的行为.

我有配置活动的AppWidget应用程序.正如在appwidget的教程更新中所说,我必须自己做.

public static void updateWidgetAndSendIntent (Activity activity,int mAppWidgetId,boolean isUpdate) {
    updateWidgets(activity);
    if (!isUpdate) {
        Intent resultIntent = new Intent();
        resultIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,mAppWidgetId);
        activity.setResult(Activity.RESULT_OK,resultIntent);
        activity.finish();
    }
}

    public static void updateWidgets(Context context) {
    new ManagerUpdateWidget(context).updateAllWidgetInstances();
}

ManagerUpdateWidget.java

public void updateAllWidgetInstances() {

    Bitmap widget = getCustomView(context);

    for (int widgetId : appWidgetIds) {
        updateCurrentInstance(widgetId,widget);
    }
}

事实上,搭载Android 4.4.2的三星Galaxy Note 2(GT-N7100)一切都还可以,但是在搭载Android 5.0的三星Galaxy Note 3(SM-N900)上我有“幻影”appwidget,而不是真正的appawidget on主屏幕,但“幽灵”,当你在屏幕上看不到appwidget但在你的应用程序appwidget内存在ID和定期更新.
我已经在genymotion模拟器(Android 4.3和5.0)上测试了我的应用程序,但一切都很好.

请建议我如何解决这个奇怪的错误.

解决方法

处理“幻影”小部件这是一场噩梦.您可以使用updateAppWidget(ComponentName提供程序,RemoteViews视图)更新所有实例吗?
根据文档,此方法将设置RemoteViews用于所提供的AppWidget提供程序的所有AppWidget实例.
AppWidgetManager manager = AppWidgetManager.getInstance(context);
ComponentName component = new ComponentName(context,MyAppWidgetProvider.class);
manager.updateAppWidget(component,remoteViews);

猜你在找的Android相关文章