0

我有一个名为 UpdaterService 的服务类。以下是我的 onStartCommand() 方法:

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
       if(Constants.DEBUG) Log.d(TAG, "onStarted");
       updater = new Updater();
       try {
           updater.start();
       } catch(NullPointerException e) {
           Stuff.showErrorMessage();
       }

       return Service.START_STICKY;
}

updater 是 Updater 类的自定义对象,它扩展了 Thread。以下是我得到的例外:

08-12 12:19:49.708: ERROR/AndroidRuntime(1995): Uncaught handler: thread Updater exiting due to uncaught exception
08-12 12:19:49.708: ERROR/AndroidRuntime(1995): java.lang.NullPointerException: HostActivity not instantiated
    at com.morten.app.klepprc.services.UpdaterService$Updater.run(UpdaterService.java:135)

这会导致我的应用程序崩溃。在 UpdaterService.java 的第 135 行:

if(application.getHostActivity() == null) {
   throw new NullPointerException("HostActivity not instantiated");
}

为什么我的 catch 块中没有处理异常?所有的反馈都得到了认可。

4

1 回答 1

1

我假设您的start();方法是非阻塞的。

异常发生在 run() 方法中,它在不同的线程上?

于 2012-08-12T10:52:34.053 回答