用WorkManager替换WakefulBroadcastReceiver以获取唤醒锁并执行几个服务调用?

时间:2019-05-13 09:06:04

标签: android deprecated android-architecture-components android-jetpack android-workmanager

在我当前的项目中,我实现了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);

        }

0 个答案:

没有答案