Android アプリの場合、別の日に firebase ジョブ ディスパッチャーを使用して 3 つのサービスを開始したいと考えています。3 つのジョブすべてに同じ FirebaseDispatcher オブジェクトを使用できますか? 一方、アプリが閉じられても同じ FirebaseDispatcher オブジェクトを維持するにはどうすればよいですか?. 静的オブジェクトを使用すると、アプリがクラッシュするとクリアされます。では、同じディスパッチャ オブジェクトを使用して複数のサービスをスケジュールするために FirebaseDispatcher オブジェクトを維持する方法は? または、サービスごとに異なる FirebaseDispatcher オブジェクトを作成できますか? それは良い習慣ですか?
質問する
601 次
1 に答える
1
- すべてのジョブに同じ FirebaseJobDispatcher を使用できます。
- アプリケーションが閉じられると、ジョブが実行されます。どのように?これは Android OS の問題です。
- ジョブがいつ、どのように開始されるかを説明するだけです。それはすべてです。ドキュメントをもう一度読み、ライブラリのソース コード内のコメントを参照してください。
- さまざまなジョブに対して新しい FirebaseJobDispatcher を作成できます。
- 静的オブジェクトの誤用 -- 悪い習慣です。
そう
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 に答える