我正在OnCreate中创建一个警报管理器,该活动应该在2小时后运行但是每隔几分钟就会运行一次可以帮助我可能做的事情是错误的吗?
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);
}
答案 0 :(得分:1)
AlarmManager.setInexactRepeating(...)
的第3个参数是以毫秒为单位,而不是秒。
正确的数字是2 * 60 * 60 * 1000 = 7200000
。
还要记住,它可能不会恰好是2小时,因为Android组合警报以节省电力(打盹)。可能是2小时2分钟,或1小时59分钟。如果您想要正好使用2小时,请使用setExact(...)
,但只在真正需要时才使用它。