我有一个IntentService
(实际上是一个WakefulIntentServicePendingIntent
!),它使用添加到用于启动服务的意图的a 将结果返回给请求(即,来自活动) 。早些时候我使用过ResultReceiver
,但发现如果设备进入睡眠状态或在处理请求时旋转,它会崩溃。
作为该服务的单元测试,我正在使用ServiceTestCase<Service>
该类。使用时效果很好,ResultReceiver
因为它可以添加到传递给服务的意图中。但是,ServiceTestCase
不包含Activity的createPendingResult
方法。
因此,我想知道测试此服务的最佳方法是什么。我应该使用 ActivityInstrumentationTestCase2 还是ActivityUnitTestCase
代替我的单元测试?还是有更好的想法?
顺便说一句,我在 Android Dev 中阅读过。服务指南章节如下:
“但是,如果您希望服务发回结果,那么启动服务的客户端可以为广播创建一个 PendingIntent(使用 getBroadcast())并将其传递给启动服务的 Intent 中的服务。服务然后可以使用广播来传递结果。”
在活动中使用本地广播对IntentService
我来说听起来有点矫枉过正,但我很乐意听到其他人对此的看法。