opt(autojs): optimize TimedTaskScheduler to schedule task

This commit is contained in:
hyb1996
2018-09-09 13:47:23 +08:00
parent 32548ff9f4
commit f62958655a
6 changed files with 16 additions and 11 deletions

View File

@@ -8,8 +8,8 @@ android {
applicationId "org.autojs.autojs"
minSdkVersion 17
targetSdkVersion 23
versionCode 409
versionName "4.0.2 Alpha4"
versionCode 410
versionName "4.0.2 Alpha5"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
ndk {

View File

@@ -6,8 +6,11 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Parcelable;
import android.util.Log;
import com.twofortyfouram.spackle.AlarmManagerCompat;
import java.util.concurrent.TimeUnit;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -57,9 +60,12 @@ public class TimedTaskScheduler extends BroadcastReceiver {
context.sendBroadcast(timedTask.createIntent());
return;
}
assert alarmManager != null;
// FIXME: 2017/11/28 requestCode may > 65535
PendingIntent op = timedTask.createPendingIntent(context);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
alarmManager.setAlarmClock(new AlarmManager.AlarmClockInfo(millis, null), op);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, millis, op);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, millis, op);