从 WakefulService 启动 IntentService
Starting an IntentService form a WakefulService
我有一个广播接收器表单,我正在使用 startWakefulSerivce(context,i)
.
启动一个意图服务(比如 s1)
我正在使用 startService(i)
从服务 s1 启动另一个 IntentService(比如 s2)。在 s1 中,我使用
释放唤醒锁
GCMBroadcastReceiver.completeWakefulIntent(intent);
现在,第二个 IntentService s2 仍会持有唤醒锁,即,如果设备休眠,它是否会 运行 在后台运行。
如果不是,我如何才能像第一个一样清醒地启动第二个 Intent Service s2?
Now will the second IntentService s2 stll hold the wakelock
没有
If not how can I start the second Intent Service s2 wakefully like the first one?
恕我直言,最好的答案是不要有第二个 IntentService
,因为不清楚为什么要将工作分成两个 IntentService
实现。
假设您有分手的原因,您的主要选择是:
使用 my WakefulIntentService
,这与必须由 BroadcastReceiver
启动无关(尽管这肯定是一种常见的使用模式)。
非常小心地管理你自己的WakeLock
。
不是直接启动服务,而是使用另一个 WakefulBroadcastReceiver
启动服务(所以你调用 sendBroadcast()
)。换句话说,将您的第二个 IntentService
与第一个一样对待。不过,这会影响安全性和效率。
我有一个广播接收器表单,我正在使用 startWakefulSerivce(context,i)
.
我正在使用 startService(i)
从服务 s1 启动另一个 IntentService(比如 s2)。在 s1 中,我使用
GCMBroadcastReceiver.completeWakefulIntent(intent);
现在,第二个 IntentService s2 仍会持有唤醒锁,即,如果设备休眠,它是否会 运行 在后台运行。 如果不是,我如何才能像第一个一样清醒地启动第二个 Intent Service s2?
Now will the second IntentService s2 stll hold the wakelock
没有
If not how can I start the second Intent Service s2 wakefully like the first one?
恕我直言,最好的答案是不要有第二个 IntentService
,因为不清楚为什么要将工作分成两个 IntentService
实现。
假设您有分手的原因,您的主要选择是:
使用 my
WakefulIntentService
,这与必须由BroadcastReceiver
启动无关(尽管这肯定是一种常见的使用模式)。非常小心地管理你自己的
WakeLock
。不是直接启动服务,而是使用另一个
WakefulBroadcastReceiver
启动服务(所以你调用sendBroadcast()
)。换句话说,将您的第二个IntentService
与第一个一样对待。不过,这会影响安全性和效率。