在特定时间android无法获得准确的警报

时间:2017-02-10 03:46:09

标签: android alarmmanager repeatingalarm

我是android的新手。 我想在特定的时间每天做一些工作。 我的工作是从数据库中获取一个数据并向用户显示。 我使用onReceive方法来完成这项工作。

我将下面的代码放在OnCreate方法

SharedPreferences prefs = getSharedPreferences("FIRST_TIME_LOGIN", MODE_PRIVATE);
    String restoredText = prefs.getString("isFirstTime", null);
    if (restoredText == null) {
        SharedPreferences.Editor editor = getSharedPreferences("FIRST_TIME_LOGIN", MODE_PRIVATE).edit();
        editor.putString("isFirstTime", "yes");
        editor.commit();

        Calendar calendar = Calendar.getInstance();
        //calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.HOUR_OF_DAY, 9);
        calendar.set(Calendar.MINUTE, 35);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.AM_PM,Calendar.AM);

        Intent alarmIntent = new Intent(MainActivity.this, AlarmReceiver.class);
        pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, alarmIntent, 0);
        manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
        int interval = 1000*60*5;//calendar.getTimeInMillis()//AlarmManager.INTERVAL_DAY
        manager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis() ,AlarmManager.INTERVAL_HOUR , pendingIntent);
        Toast.makeText(getApplicationContext(), "Alarm Set MainActivity", Toast.LENGTH_SHORT).show();
    }

检查我用了一个小时的间隔。 问题是每当我安装我的应用程序时,它会立即触发警报,它应该在上午9点30分发出警报。

我的代码有什么问题?

0 个答案:

没有答案