私の質問の一部は、「ノーガット」で15分以下の間隔で仕事をセットアップする方法は、彼の答えでは「ブリザード」によって答えられました:
Job Scheduler not running on Android N
彼は問題を説明し、次の回避策を使用することが提案:アンドロイドNのジョブスケジューラで、15分未満の間隔で
JobInfo jobInfo;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setMinimumLatency(REFRESH_INTERVAL)
.setExtras(bundle).build();
} else {
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setPeriodic(REFRESH_INTERVAL)
.setExtras(bundle).build();
}
しかし、提案
.setMinimumLatency(REFRESH_INTERVAL)
を使用して一度だけジョブを開始します。
(ハンドラやアラームマネージャーを使用しないで)アンドロイドのヌガーデバイスで約30秒の周期で定期的に取得するにはどうすればよいですか?
アプリがフォアグラウンドにあり、ユーザーが積極的に使用している場合を除き、30秒ごとに何かをするのは、バックグラウンドアプリによるバッテリー消費について大声で訴えているユーザーの目には不適切です。 – CommonsWare
しかし、あなたが電話を始めるときに最新の情報を入手したいと思っているユーザーがいれば(おそらく彼らは今インターネットがなくても...)、信頼できるバックグラウンドサービスが必要です。あるいは、これはまったく不可能であると私に伝えようとしていますか?そうすれば、私が知っていることを教えようとせずに済むでしょう。 – tomseitz
"30秒ごとに作業する必要はありません。" - 電話をかけたときに最新の情報を入手したい場合は、 "あるいは、あなたが私に言っていることは、これは明らかに可能ではないということですか?"あなたのアプリがフォアグラウンドにあり、積極的に使用されていない限り、これを確実に行うことはありません。マニュアルごとに – CommonsWare