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(...),但只在真正需要的时候使用它。