2015-10-06 74 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); 
    } 
} 

事實是,在三星Galaxy Note 2(GT-N7100)採用Android 4.4.2一切正常,但在三星Galaxy Note 3(SM-N900 )與Android 5.0我有「幻影」appwidget,主屏幕上不是真正的appawidget,但是當你無法在屏幕上看到appwidget時出現「幻影」,但在你的應用程序appwidget中存在ID和常規更新。 我已經在genymotion模擬器(Android 4.3和5.0)上測試過我的應用程序,但一切正常。

請建議我如何解決這個奇怪的錯誤。

+0

你能澄清一下「幻像」appwidget是什麼意思? –

+0

[This](http://stackoverflow.com/a/8866791/4600792)答案可能會對您有所幫助。 –

+0

這是另一個bug,不是我的。我在「Widget list」中看到我的小部件,並可以運行配置活動,但配置完成後,我在主屏幕上看不到新的實例。在我的情況下,它只發生在注3上,在注2上運行是好的 –

回答

0

處理「幻影」小部件是一場噩夢。你能用updateAppWidget (ComponentName provider, RemoteViews views)更新所有的實例嗎?
根據文檔,此方法將設置RemoteViews用於提供的AppWidget提供程序的所有AppWidget實例。

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

裏面updateCurrentInstance-方法我讓你建議......它沒有幫助我 –

相關問題