在我当前的项目中,我实现了WakefulBroadcastReceiver以获取“唤醒锁”并执行一些服务器回调(例如sync()服务)以同步与应用程序相关的数据,并调用IntentService来执行相同的操作。由于WakefulBroadcastReceiver现在已被弃用,因此我想使用最新的android工作管理器执行相同的操作。我还研究了JobIntentService的替代实现。我仍然想弄清楚是否可以使用工作管理器来实现这一点?
我已经尝试过JobIntentService作为替代解决方案。
先前的实现:
// Explicitly specify that FcmIntentService will handle the intent.
ComponentName componentName = new ComponentName(getPackageName(), FcmIntentService.class.getName());
// Start the service, keeping the device awake whilst it is launching
try {
startWakefulService(this, intent.setComponent(componentName));
} catch (Exception e) {
// Not Required
}
//With JobIntentService:
Intent intent = new Intent();
intent.putExtras(toBundle(data));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
FcmJobIntentService.enqueueWork(this, intent);
}