0
我製作了用於閱讀新聞項的小部件。如果我在主屏幕上放置一個小部件,一切都很好。但是,如果我在主屏幕上放置了一個後綴,並將其刪除,則該小部件的服務將停止。因此,如果小部件進入更新方法,則會發生錯誤。無法在Android中啓動服務
java.lang.RuntimeException: Unable to start service [email protected] with Intent { flg=0x10000000 cmp=news/.WidgetActivity$UpdateService bnds=[26,97][79,151] }: java.lang.NullPointerException
一個空指針是在這一行:
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
下面的代碼:
public static class UpdateService extends Service {
@Override
public void onStart(Intent intent, int startId) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
remoteViews.setViewVisibility(R.id.WidgetRefresh_btn, View.GONE);
remoteViews.setViewVisibility(R.id.progressWidget, View.VISIBLE);
appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
WidgetActivity.Widget.onUpdate(context, appWidgetManager, appWidgetIds);
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}
Tnx!恩......認爲問題是固定的。但是現在我又遇到了另一個問題:如果我有兩個小部件,並且按下第一個小部件上的按鈕,則第二個小部件會更新他的自定義。這與WidgetIdd有什麼關係? – Johan
這取決於您設置爲第一個小部件的意圖。如果它觸發appwidgets的更新機制,它可能會更新第二個。但是,如果沒有整個更新代碼,很難說清楚。如果你無法弄清楚,我建議開一個新的問題。該id僅是每個appwidget實例的唯一引用。不應該被分配到這兩個小部件,所以我猜它與它無關。 – 2011-08-17 19:51:27