【问题标题】:Android:Alarm Manager MisfiresAndroid:警报管理器失火
【发布时间】:2016-04-03 07:43:23
【问题描述】:

我正在 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);


    }

【问题讨论】:

    标签: android alarmmanager android-alarms repeatingalarm


    【解决方案1】:

    AlarmManager.setInexactRepeating(...) 的第三个参数以毫秒为单位,而不是秒。 正确的数字是2 * 60 * 60 * 1000 = 7200000

    另外请记住,它可能不会正好是 2 小时,因为 Android 将警报组合在一起以节省电量(打瞌睡)。它可能是 2 小时 2 分钟或 1 小时 59 分钟。如果您想要正好 2 小时,请使用 setExact(...),但仅在真正需要时使用。

    【讨论】:

    • 非常感谢您指出最后一个参数是毫秒我错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多