-1

WorkManagerを介して 2 つの Worker を作成しました。ログインに成功した後、30分ごとに解決しました。

ログインすると、正常に起動し、期待どおりに動作しました。

MyWorker.java

public class MyWorker extends Worker {
    private Context mContext;

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

    @NonNull
    @Override
    public Result doWork() {
        Log.d(TAG, "doWork: Done");

        return Result.success();
    }
}

ログインに成功したらワーカーを起動します。

PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(MyWorker.class, 30, TimeUnit.MINUTES)
            .addTag("Location")
            .build();

WorkManager.getInstance().enqueueUniquePeriodicWork("Location", ExistingPeriodicWorkPolicy.REPLACE, periodicWork);

問題:

アプリを実行すると、再び実行されます。アプリをインストール (実行) するたびに発生します。

これに対する解決策はありますか?

4

4 に答える 4

0

行を削除し.addTag("Location")ます。ExistingPeriodicWorkPolicy 属性を REPLACE から KEEP に変更します。残りのコードはそのままにしておきます。これはうまくいくはずです。

詳細については、このリンクを参照してください。

于 2021-07-17T13:37:07.070 に答える