我有一个广播接收器表单,我正在使用startWakefulSerivce(context,i)
开始一个意向服务(比如s1)。
从服务s1开始,我使用startService(i)
启动另一个IntentService(比如s2)。在s1中我用
GCMBroadcastReceiver.completeWakefulIntent(intent);
现在,第二个IntentService s2 stll将保持唤醒锁,即,如果设备休眠,它将在后台运行。 如果不是,我怎么能像第一个那样清醒地启动第二个Intent Service s2?
答案 0 :(得分:2)
现在第二个IntentService s2 stll将保持唤醒锁
没有
如果不是,我怎么能像第一个那样清醒地启动第二个Intent Service s2?
恕我直言,最好的答案是没有第二个IntentService
,因为不清楚为什么要将工作分成两个IntentService
实现。
假设您有分割的原因,您的主要选项是:
使用my WakefulIntentService
,这与BroadcastReceiver
无关(虽然这肯定是一种常见的使用模式)。
非常谨慎地管理您自己的WakeLock
。
不是直接启动服务,而是使用另一个启动服务的WakefulBroadcastReceiver
(因此您调用sendBroadcast()
)。换句话说,将第二个IntentService
视为与第一个an
相同。然而,这具有安全性和效率的影响。