You can't run the service on another thread but you can create a new thread within the Service. The thread is created exactly the same way as you would in an Activity.
Regarding your NullPointerException try to add a check
if (this.notificationManager == null)
this.notificationManager.cancelAll();
Although you might reconsider using cancelAll()
because, according to the documentation, it would clear all notifications.