0

Android アプリの場合、別の日に firebase ジョブ ディスパッチャーを使用して 3 つのサービスを開始したいと考えています。3 つのジョブすべてに同じ FirebaseDispatcher オブジェクトを使用できますか? 一方、アプリが閉じられても同じ FirebaseDispatcher オブジェクトを維持するにはどうすればよいですか?. 静的オブジェクトを使用すると、アプリがクラッシュするとクリアされます。では、同じディスパッチャ オブジェクトを使用して複数のサービスをスケジュールするために FirebaseDispatcher オブジェクトを維持する方法は? または、サービスごとに異なる FirebaseDispatcher オブジェクトを作成できますか? それは良い習慣ですか?

4

1 に答える 1

1
  1. すべてのジョブに同じ FirebaseJobDispatcher を使用できます。
  2. アプリケーションが閉じられると、ジョブが実行されます。どのように?これは Android OS の問題です。
  3. ジョブがいつ、どのように開始されるかを説明するだけです。それはすべてです。ドキュメントをもう一度読み、ライブラリのソース コード内のコメントを参照してください
  4. さまざまなジョブに対して新しい FirebaseJobDispatcher を作成できます。
  5. 静的オブジェクトの誤用 -- 悪い習慣です。

そう

FirebaseJobDispatcher dispatcher1 =
    new FirebaseJobDispatcher(new GooglePlayDriver(context));

Job job1 = dispatcher1.newJobBuilder()
    .setService(YourService1.class)
    .setTag(Const.JOB_TAG_1)
    // more options to run
    .build();

Job job2 = dispatcher1.newJobBuilder()
    .setService(YourService2.class)
    .setTag(Const.JOB_TAG_2)
    // ...
    .build();

dispatcher1.mustSchedule(job1);

FirebaseJobDispatcher dispatcher2 =
    new FirebaseJobDispatcher(new GooglePlayDriver(context));

dispatcher2.mustSchedule(job2);

dispatcher1.cancel(Const.JOB_TAG_1);
dispatcher2.cancel(Const.JOB_TAG_2);
于 2017-10-15T18:41:07.203 に答える