Android:Alarm 经理失火
Android:Alarm Manager Misfires
我正在 activity 的 OnCreate 中创建一个警报管理器,它应该在 2 小时后 运行 但每隔几分钟就会 运行ning 有人可以帮助我吗做错了吗?
public class DrawerActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drawer_menu);
ButterKnife.bind(this);
setUpFitnessAlarm();
}
}
private void setUpFitnessAlarm(){
Intent alarmIntent = new Intent(DrawerActivity.this, GoogleFitAutoStart.class);
pendingIntent = PendingIntent.getBroadcast(DrawerActivity.this, 0, alarmIntent, 0);
int wkupTime;
wkupTime =72000;
Log.i(TAG,"Default timer fetch : "+wkupTime);
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), wkupTime, pendingIntent);
}
AlarmManager.setInexactRepeating(...)
的第三个参数是毫秒,不是秒。
正确的数字是 2 * 60 * 60 * 1000 = 7200000
.
另请记住,它可能不会正好是 2 小时,因为 Android 将闹钟组合在一起以节省电量(打瞌睡)。可能是 2 小时 2 分钟,或 1 小时 59 分钟。如果你想正好有 2 个小时,那么使用 setExact(...)
,但只在真正需要的时候使用它。
我正在 activity 的 OnCreate 中创建一个警报管理器,它应该在 2 小时后 运行 但每隔几分钟就会 运行ning 有人可以帮助我吗做错了吗?
public class DrawerActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drawer_menu);
ButterKnife.bind(this);
setUpFitnessAlarm();
}
}
private void setUpFitnessAlarm(){
Intent alarmIntent = new Intent(DrawerActivity.this, GoogleFitAutoStart.class);
pendingIntent = PendingIntent.getBroadcast(DrawerActivity.this, 0, alarmIntent, 0);
int wkupTime;
wkupTime =72000;
Log.i(TAG,"Default timer fetch : "+wkupTime);
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), wkupTime, pendingIntent);
}
AlarmManager.setInexactRepeating(...)
的第三个参数是毫秒,不是秒。
正确的数字是 2 * 60 * 60 * 1000 = 7200000
.
另请记住,它可能不会正好是 2 小时,因为 Android 将闹钟组合在一起以节省电量(打瞌睡)。可能是 2 小时 2 分钟,或 1 小时 59 分钟。如果你想正好有 2 个小时,那么使用 setExact(...)
,但只在真正需要的时候使用它。