正如你建议我使用 AlarmManager 而不是 Timer,我想,程序会运行。
但不幸的是,事实并非如此。或者,更好的是,并不总是...
这是我的代码:
long millis = 0;
this.alarmMgr = (AlarmManager)this.main.getSystemService(Context.ALARM_SERVICE);
this.checkPendingIntent = PendingIntent.getBroadcast(this.main, 0,
new Intent(this.main, AlarmReceiver.class), 0);
if(frequency.compareTo("1HOUR") == 0)
millis = 3600 * 1000;
if(frequency.compareTo("12HOUR") == 0)
millis = 12 * 3600 * 1000;
if(frequency.compareTo("1DAY") == 0)
millis = 24 * 3600 * 1000;
if(frequency.compareTo("1WEEK") == 0)
millis = 7 * 24 * 3600 * 1000;
this.alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis(), millis, this.checkPendingIntent);
我希望每 X 毫秒调用一次未决意图 (AlarmReceiver),但事实并非如此。
我可以在我的手机日志中看到它不会被调用,并且在我的服务器的日志中(接收方发送一个 HTTP 请求),没有收到任何请求。
非常奇怪的是,它有时会运行,但我无法重现这种情况。
有人可以说我在做什么错吗?
非常感谢
Luca Bertoncello