java - 无法在 Android 中启动服务

标签 java android

我制作了用于阅读新闻的小部件。如果我在主屏幕上放置一个小部件,一切都很好。但是,如果我在主屏幕上放置了第二个小部件并将其删除,则该小部件的服务就会停止。因此,如果小部件进入更新方法,则会发生错误。

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

这一行有一个空指针:

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;
    }
}   

最佳答案

您的 context 对象可能为 null。由于您处于扩展Context的服务中,因此您也可以使用this.getPackageName()或仅使用getPackageName()

关于java - 无法在 Android 中启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7098059/

相关文章:

java - git:用于从存储库获取 git 注释的 java git api

java - 如何从包含字符串的Arraylist中获取索引

android - Canvas 和 Bitmap 是什么关系?

android - Unity 3d 中的 PlayerPrefs 不起作用(有时)

android - 将 admob 栏添加到 Recyclerview 的中间。索引越界异常

android - android 将 1 个位图覆盖到另一个图像,但没有得到正确的输出

android - CacheManager.getCacheFileBaseDir() 总是返回 null

java - 我正在尝试使用 jasper 报告开发 excel 页面

java - RxJava 一次只执行一个 Observable

java - 如何将 serversocket 绑定(bind)到特定 IP?