0

特定のタスクが特定の時間にバックグラウンドで実行されるようなアプリケーションを開発しています。Firebase JobDispatcherを使用して時間固有のタスクをトリガすることはできますか

Androidデベロッパーのドキュメントには、さまざまな方法が提案されています。私はこの目的のためにAlarmManagerを使用できることを知っています。しかし、私は、Android 6.0のDozeモードでAlarmManagerを使用すると、不適切なトリガーが発生すると思います。

私は自分のアプリケーションは、Android 5.0以下のバージョンをサポートしていたようdeveloper docs

からライブラリをJobSchedulingに出くわしました。私はFireBaseJobDispatcherを使うことを考えました。

FirebaseJobDispatcherを使用して特定の時間に特定のタスクをトリガすることはできますか?例については

:私はDBにすることができます午前9時から午後6時

答えて

1

に一度時間ごとに更新したいが、あなたの時間ウィンドウがそれほど厳しくない場合は、あなたのタスクは、いくつかの中で作業を開始する保証はありませんDozeモードのため、本当に厳密なスケジュールが必要な場合は、AlarmManager.setAndAllowWhileIdleを使用してください。 FirebaseJobDispatcherはまだリリースされておらず、解決されていない問題がいくつかあります。リリースする前に、GCMNetworkManager(Google Playサービスcom.google.android.gms:play-services-gcm)をこの目的のために使用することができます。私はFJDは、0.5.0をリリースしていると思う

PeriodicTask task = new PeriodicTask.Builder() 
      .setService(SyncManagerService.class) 
      .setTag(TASK_TAG_SYNC_SERVICE) 
      .setUpdateCurrent(true) 
      .setPersisted(true) 
      .setPeriod(period) 
      .setFlex(flexInSeconds < period ? flexInSeconds : period) 
      .setRequiredNetwork(wifiOnly ? PeriodicTask.NETWORK_STATE_UNMETERED : PeriodicTask.NETWORK_STATE_CONNECTED) 
      .build(); 

GcmNetworkManager.getInstance(context).schedule(task); 
+0

https://github.com/firebase/firebase-jobdispatcher-android/:GcmNetworkManagerについては

final FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(context)); if (isSyncEnabled) { Job job = dispatcher.newJobBuilder() .setService(SyncService.class) .setTag(TAG) .setConstraints(isSyncOnlyWiFi ? Constraint.ON_UNMETERED_NETWORK : Constraint.ON_ANY_NETWORK) .setRecurring(true) // !!! .setLifetime(Lifetime.FOREVER) //!!! .setTrigger(Trigger.executionWindow(syncIntervalInSeconds, syncIntervalInSeconds + TIME_WINDOW_IN_SECONDS)) .setReplaceCurrent(true) .setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL) .build(); final int result = dispatcher.schedule(job); if (result != FirebaseJobDispatcher.SCHEDULE_RESULT_SUCCESS) { // pre handle error } 

: FirebaseJobDispatcherのためのあなたのコードは、かもしれない、このようになります。 – John

+0

はい、FJDがリリースされたようです。ありがとうございます。しかし、まだ安定していない、私のように。 –

+0

GCMネットワークマネージャーはどうですか?安定していますか?ロリポップの下でも使えますか? – John

関連する問題