Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当android中的应用程序被终止时,Workmanager将关闭_Android - Fatal编程技术网

当android中的应用程序被终止时,Workmanager将关闭

当android中的应用程序被终止时,Workmanager将关闭,android,Android,我使用WorkManager中的AlarmManager。 当应用程序前景化时,AlarmManager工作正常。 但当应用程序被终止时(通过查看最新的应用程序关闭刷卡),WorkManager也会被终止 为什么workmanager会死? 我想要类似于不朽服务的WorkManager。 因为我正在制作alarmApp MainActivity.class onCreate WorkManager workManager = WorkManager.getInstance(); OneTimeW

我使用WorkManager中的AlarmManager。 当应用程序前景化时,AlarmManager工作正常。 但当应用程序被终止时(通过查看最新的应用程序关闭刷卡),WorkManager也会被终止

为什么workmanager会死? 我想要类似于不朽服务的WorkManager。 因为我正在制作alarmApp

MainActivity.class onCreate

WorkManager workManager = WorkManager.getInstance();
OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(MyWorker.class).build();
workManager.enqueue(workRequest);
MyWorker.class

public class MyWorker extends Worker {
Context context;
Thread thread;

public MyWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
    super(context, workerParams);
    this.context = context;
}

@NonNull
@Override
public Result doWork() {
    Log.d("1106", "MyWorker_doWork()");
    Calendar calendar = Calendar.getInstance();

    Log.d("1106", "" + calendar.getTime());

    Intent notiIntent = new Intent(context, NotiReceiver.class);
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

    calendar.set(2020, 10, 06, 06, 25, 0);
    PendingIntent pendingIntent2 = PendingIntent.getBroadcast(context, 2, notiIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent2);

    thread = new Thread(new Runnable() {
        @Override
        public void run() {
            int cnt = 0;
            while (true) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                Log.d("1106", cnt++ + "");
            }
        }
    });
    thread.start();

    return Result.success();
}
}