警报的待处理意图(Android Studio)

时间:2018-07-11 22:57:42

标签: java android android-studio alarmmanager android-alarms

我在Android Studio中有一个警报应用程序,在其中单击按钮时,将设置一个挂起的意图,以转到AlarmReceiver类(我知道我在代码中拼写错误)。

alarmManager= (AlarmManager) getSystemService(ALARM_SERVICE);

timePicker = (TimePicker) findViewById(R.id.TimePicker);

updateText = (TextView) findViewById(R.id.AlarmCheck);

final Calendar calendar = Calendar.getInstance();

Button startAlarm = (Button) findViewById(R.id.AlarmOn);

final Intent myIntent = new Intent(this.context,AlarmReciever.class);

    startAlarm.setOnClickListener(new View.OnClickListener() {

        @TargetApi(Build.VERSION_CODES.M)

            @Override
            public void onClick(View view) {

            int hour = timePicker.getHour();
            int minute = timePicker.getMinute();

            String minuteString=String.valueOf(minute);

            calendar.set(Calendar.HOUR,timePicker.getHour());
            calendar.set(Calendar.MINUTE, timePicker.getMinute());


            if (minute < 10) {
                minuteString = "0" + String.valueOf(minute);
            }

            setAlarmText("Alarm On: " + hour +":"+minuteString);

            Log.e("We have reached:  ", "Alarm On Button");

            myIntent.putExtra("extra", "alarm on");

            pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT );

            alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
        }
    });

设置闹铃,使其立即或最多在1分钟内关闭(使用时间选择器)。单击按钮的自定义错误日志消息出现在logcat中,但是当警报时间到来时,AlarmReceiver中的消息不会出现。我想知道为什么在我指定的时间我的闹钟不会响起。

public class AlarmReciever extends BroadcastReceiver {


@Override
public void onReceive(Context context, Intent intent) {

    Log.e("We are in!","Finally");

    String getString = intent.getExtras().getString("extra");

    Log.e("Key: ",getString);

    Intent serviceIntent = new Intent(context, RingtonePlayingService.class);

    serviceIntent.putExtra("extra",getString);

    context.startService(serviceIntent);
}

}

我看过Android Studio中闹钟的其他示例,使用类似的代码,它们似乎可以正常工作。但是,它们的build.gradle文件具有不同的目标和编译SDK。我已从set()切换到setExact(),因为该文档表明在使用API​​ 19之后使用AlarmManager的任何应用程序都不会立即关闭警报,而无需使用setExact()。但是,这没有帮助。我不确定如何进行。任何帮助将不胜感激,谢谢!

0 个答案:

没有答案