代码之家  ›  专栏  ›  技术社区  ›  Sujeet Kumar Mehta

当设备重新启动并强制关闭应用程序时,Redmi和其他自定义中文ROM中未接收到WorkManager DoWork回调。

  •  1
  • Sujeet Kumar Mehta  · 技术社区  · 7 年前

    当我的应用程序在后台或被刷卡杀死时,我的应用程序在Redmi手机上没有收到推送通知。

    因此,我试图唤醒工作经理的电话,它在许多手机上工作,除了Redmi和其他中国定制的ROM手机。

    这是我的工人阶级代码

    public class OpenTalkWorkManager extends Worker {
    
    @NonNull
    @Override
    public Result doWork() {
    
        Log.i("wake_up", "Waking up now: " + System.currentTimeMillis());
    
        FirebaseUtils.getInstance().updateUserPresenceStatus(getApplicationContext(), "yes");
    
        Intent intent = new Intent("com.opentalk.WAKE_UP");
        getApplicationContext().sendBroadcast(intent);
    
        return Result.SUCCESS;
    }
    

    我正试图通过PeriodicWorkRequest将工作排队

    PeriodicWorkRequest.Builder mPeriodicWorkRequest = new PeriodicWorkRequest.Builder(OpenTalkWorkManager.class, 4, TimeUnit.MINUTES);
        Constraints myConstraints = new Constraints.Builder()
                .setRequiresBatteryNotLow(false)
                .setRequiredNetworkType(NetworkType.NOT_REQUIRED)
                .setRequiresCharging(false)
                .setRequiresDeviceIdle(false)
                .setRequiresStorageNotLow(false)
    
                // Many other constraints are available, see the
                // Constraints.Builder reference
                .build();
        PeriodicWorkRequest myWork = mPeriodicWorkRequest.setConstraints(myConstraints).build();
    
        UUID compressionWorkId = myWork.getId();
        WorkManager.getInstance().cancelWorkById(compressionWorkId);
    
        WorkManager.getInstance().enqueue(myWork);
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   Rahul    7 年前

    WorkManager PeriodicWork alpha05 alpha06

        2
  •  0
  •   RANAJEET BARIK    6 年前

    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="android.permission.WAKE_LOCK" />

    推荐文章