我制作了一个用于阅读新闻项目的小工具。如果我把一个小部件放在我的主屏幕上,一切都很好。但是如果我在我的主屏幕上放置一个seconde并且我将其删除,那么小部件的服务就会停止。因此,如果窗口小部件进入更新方法,则会发生错误。
java.lang.RuntimeException: Unable to start service news.WidgetActivity$UpdateService@405231d8 with Intent { flg=0x10000000 cmp=news/.WidgetActivity$UpdateService bnds=[26,97][79,151] }: java.lang.NullPointerException
nullpointer就在这一行:
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;
}
}
答案 0 :(得分:2)
您的context
对象可能为空。由于您的服务范围为Context
,因此您也可以使用this.getPackageName()
或getPackageName()
代替。