我有使用服務進行更新的小部件。它有按鈕來打開活動。它完美的作品。但是,有時我點擊小部件打開活動,它不會工作或更新。小部件沒有響應
我的問題是: 什麼殺了一個應用程序的部件。如果小部件已經死亡,爲什麼它仍然顯示在屏幕上。 有沒有反過來重溫那個特定的小部件而不創建另一個。
謝謝
我有使用服務進行更新的小部件。它有按鈕來打開活動。它完美的作品。但是,有時我點擊小部件打開活動,它不會工作或更新。小部件沒有響應
我的問題是: 什麼殺了一個應用程序的部件。如果小部件已經死亡,爲什麼它仍然顯示在屏幕上。 有沒有反過來重溫那個特定的小部件而不創建另一個。
謝謝
我必須包括在我的服務類的代碼。它的基本功能是將更新發送到每個小部件。它已經過去了一年多了,我的小部件上的按鈕總能正常工作,並且小部件更新沒有任何問題。我發佈這個希望它會幫助有同樣問題的人。我花了一年時間才解決它。
int[] arrayOfInt = AppWidgetManager.getInstance(getBaseContext())
.getAppWidgetIds(new ComponentName(this, mywidget.class));
AppWidgetManager localAppWidgetManager = AppWidgetManager
.getInstance(this);
new WebView().onUpdate(getBaseContext(), localAppWidgetManager,
arrayOfInt);
int i = arrayOfInt.length;
for (int j = 0;; j++) {
if (j >= i)
return;
int k = arrayOfInt[j];
RemoteViews localRemoteViews = new RemoteViews(getBaseContext()
.getPackageName(), R.layout.xx);
localRemoteViews.setTextViewText(R.id.tv, tv_text);
localRemoteViews.setOnClickPendingIntent(R.id.Button01,
PendingIntent.getActivity(getBaseContext(), 0, new Intent(
getBaseContext(), LicenseCheck.class), 1));
localAppWidgetManager.updateAppWidget(k, localRemoteViews);
}
當面臨內存不足的情況時,Android將停止您的小部件。 然後它會在自動清理RAM後重新啓動家庭小部件。 但是這一次,您的家庭小部件將從最後一個獲得不同的pid, ,因此無法迴應廣播。
謝謝我想知道的。非常感謝 –
所以如果小部件得到不同的pid。有什麼方法可以獲得該pid,因此廣播將更新小部件。 –
如果一個小部件沒有響應了。它死了嗎?有沒有辦法重溫它。 –
服務仍在運行並將更新發送到小部件。但小部件不會更新。除非我刪除它,並啓用另一個小部件。 –