私は場所を頻繁に、1分または2分ごとに送信する必要があるAndroidアプリをやっています。このために、私はJobSchedulerService
を使用します。私はすでにAndroid N version
のデバイスで15分ごとに1回以上実行するように管理しましたが、.setPeriodic()
を.setMinimumLatency()
に置き換えています。実際には、最初は確立された時間に定期的に実行されますが、しばらくしてから約7〜9分ごとに実行されます。停止するまでに1分ごとにJobschedulerまたはServiceを実行するにはどうすればよいですか?
私は既にバッテリー節約ホワイトリストにアプリケーションを含めましたが、動作しませんでした。制限なしで毎分またはそれに類するサービスを実行する方法はありますか?アプリがどれくらいのバッテリーを費やしているかは関係ありません。
EDIT:
ReceiverService:
public class ReceiverService extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context ctx, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
if (!isMyServiceRunning(ServiceBackground.class, ctx))
startWakefulService(ctx, new Intent(ctx, ServiceBackground.class));
new ServiceAlarmManager(ctx).register();
}
}
private boolean isMyServiceRunning(Class<?> serviceClass,Context context) {
ActivityManager manager = (ActivityManager)context. getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
Log.i("Service already","running");
return true;
}
}
Log.i("Service not","running");
return false;
}
}
ServiceAlarmManager
は@madkingが言ったように、全く同じである
これは私が試したものです。
これは本当にひどい練習です。デバイスを寝かせてください。 – Vyacheslav
何がしたいことはそれは不可能ではできません –
デバイスが充電されますので、それはひどい練習であれば、私は気にしない、優先度が場所ごと分、ないバッテリー – smartgg