3

我有一个IntentService(实际上是一个WakefulIntentServicePendingIntent !),它使用添加到用于启动服务的意图的a 将结果返回给请求(即,来自活动) 。早些时候我使用过ResultReceiver,但发现如果设备进入睡眠状态或在处理请求时旋转,它会崩溃。

作为该服务的单元测试,我正在使用ServiceTestCase<Service>该类。使用时效果很好,ResultReceiver因为它可以添加到传递给服务的意图中。但是,ServiceTestCase不包含Activity的createPendingResult方法。

因此,我想知道测试此服务的最佳方法是什么。我应该使用 ActivityInstrumentationTestCase2 还是ActivityUnitTestCase代替我的单元测试?还是有更好的想法?

顺便说一句,我在 Android Dev 中阅读过。服务指南章节如下:

“但是,如果您希望服务发回结果,那么启动服务的客户端可以为广播创建一个 PendingIntent(使用 getBroadcast())并将其传递给启动服务的 Intent 中的服务。服务然后可以使用广播来传递结果。”

在活动中使用本地广播对IntentService我来说听起来有点矫枉过正,但我​​很乐意听到其他人对此的看法。

4

0 回答 0