通过Notification操作启动的IntentService在哪个线程中运行?

时间:2014-11-04 23:05:50

标签: android multithreading android-intent android-notifications intentservice

我有一个包含在PendingIntent中的IntentService,我希望在用户点击特定的Notification操作时启动它:

Intent actionIntentService = new Intent(context, ActionIntentService.class);
PendingIntent actionPendingIntent = PendingIntent.getService(app, getNotificationId(), actionIntentService, PendingIntent.FLAG_CANCEL_CURRENT);

然后我确保将通过NotificationCompat.Builder创建的Notification添加具有此待处理意图的操作:

notificationBuilder.addAction(R.drawable.ic_notif_action, actionTitle, actionPendingIntent);

我的问题是,当

onHandleIntent(Intent intent)
调用我的IntentService的

方法,它在哪个线程上运行?

我调试了我的代码,它给我的印象是这个方法调用在主线程上运行。如果是这样的话,我需要做些什么才能让它在后台线程上运行?

修改

我的ActionIntentService确实扩展了IntentService

class ActionIntentService extends IntentService

1 个答案:

答案 0 :(得分:1)

请参阅文档,您描述的方法不存在。您应该扩展IntentService并实施onHandleIntent(Intent)

文档说:

  

此方法在工作线程上调用,并附带处理请求。