2015-10-06 12 views
7

ホーム画面に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); 
    } 
} 

事実はアンドロイドとサムスンギャラクシー注2(GT-N7100)上の4.4.2すべてがOKであることですが、三星銀河(注)3(SM-N900の)アンドロイド5.0で私は "ファントム" appwidgetを持っています、実際のappawidgetはホームスクリーンではなく、 "ファントム"のものですが、appwidgetは画面に表示されますが、appwidget内にIDと定期アップデートがあります。 私はgenymotionエミュレータ(Android 4.3および5.0)で私のアプリケーションをテストしましたが、すべてがOKでした。

このwierdのバグを修正する方法を教えてください。

+0

"ファントム" appwidgetの意味を明確にすることはできますか? –

+0

[This](http://stackoverflow.com/a/8866791/4600792)答えがあなたを助けるかもしれません。 –

+0

これは別のバグです。私のものではありません。ウィジェットは「ウィジェットリスト」に表示され、設定作業を実行できますが、設定が完了した後はホーム画面に新しいインスタンスが表示されません。私の場合は、Note 3、Note 2の実行はOK –

答えて

0

「ファントム」ウィジェットを扱うことは悪夢です。 updateAppWidget (ComponentName provider, RemoteViews views)を使用してすべてのインスタンスを更新できますか?
ドキュメントによれば、このメソッドは、提供されたAppWidgetプロバイダのすべてのAppWidgetインスタンスに使用するRemoteViewを設定します。

AppWidgetManager manager = AppWidgetManager.getInstance(context); 
ComponentName component = new ComponentName(context, MyAppWidgetProvider.class); 
manager.updateAppWidget(component, remoteViews); 
+0

のupdateCurrentInstance-method内でのみ発生します。提案したように...それは私を助けませんでした –

関連する問題