こんにちは私は最近までうまく動作していたAndroid JobScheduler APIを実装しましたが、2/3日以降に予定されているジョブに矛盾した動作があるようです。ここでAndroid JobScheduler JobService not working
はJOBINFOビルダーの設定です:
jobInfo = new JobInfo.Builder(118, new ComponentName(this, LocationJob.class)) .setBackoffCriteria(30000, JobInfo.BACKOFF_POLICY_EXPONENTIAL) .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) .setExtras(persistableBundle).build();
jobScheduler.schedule(jobInfo);
私はこれをトリガーする際の基本的な作業は、それがすぐにジョブサービスクラスを開始するために使用されているが、それはすぐに開始されていません今。
マイJobServiceクラス:
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class LocationJob extends JobService {
private static final String LOG_TAG = LocationJob.class.getSimpleName();
@Override
public boolean onStartJob(final JobParameters params) {
try {
/* doing some server work in another thread. */
} catch (Exception e) {
Log.v(LOG_TAG, e.toString() + " " + e.getMessage() + " " + e
.getCause());
}
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
return false;
}
}
私JobServiceはこれです行動がどんなものなのか、すぐにトリガされていませんか?
私はあなたの意見を持っていましたが、それが予定されたらただちにトリガすることがありました。 JobSchedulerの内部キュー・サイズはありますか?もしそうなら、私はそれに応じてスケジュールを取ることができないので、最大カウントです。そして、NETWORK_TYPE_ANYは、ジョブをできるだけ早くスケジュールするネットワーク接続があれば何でも言います。それが正しい方法です。 –
はい、あなたはネットワークを持っていないかもしれません。すぐにスケジューリングしていたのは、古いバージョンの非効率性です。それは今、多分待っているかもしれないので、それは異なるアプリや何かからいくつかのジョブをバッチすることができます。 – Frank
私はネットワークに接続していますが、私はMashmallow(6.0)で実行しています –