我有IntentService
(实际上是WakefulIntentService!),它使用添加到用于启动的意图的PendingIntent
将请求(即来自活动)返回给请求服务。之前我使用ResultReceiver
但发现如果设备进入休眠状态或在处理请求时旋转它会崩溃。
作为此服务的单元测试我正在使用ServiceTestCase<Service>
类。使用ResultReceiver
时工作正常,因为它可以添加到传递给服务的意图中。但是,ServiceTestCase
不包含活动的createPendingResult
方法。
因此我想知道测试这项服务的最佳方法是什么。我应该使用ActivityInstrumentationTestCase2还是ActivityUnitTestCase
进行单元测试?或者更好的想法?
顺便说一下,我在Android Dev中读到了。服务以下指南章节:
“但是,如果您希望服务返回结果,那么启动服务的客户端可以为广播创建PendingIntent(使用getBroadcast())并将其传递给启动服务的Intent中的服务然后,该服务可以使用广播来传递结果。“
对于活动本地的IntentService
使用广播听起来对我来说太过分了,但我会很高兴听到别人的意见。