猿问

Toast 消息在 Android 通知设置期间显示两次

我在 Android 应用程序中有一个选项可以设置两个通知。基本上,当用户单击按钮时,将显示一个时间选择器,在第一次选择器完成后,将弹出第二个时间选择器供用户第二次插入。


两个时间选择器都在不同的方法中,在第一种方法结束时显示吐司,与第二种方法相同。问题是当第一次选择器完成时,两条吐司消息立即触发,然后当用户第二次完成选择器时,第二条吐司消息再次触发。我已经包含了下面的代码。


 /**

 * Method which sets the first daily notification

 */

private void startTwiceDailyNotification(Calendar c) {

    DialogFragment timePicker = new TimePickerFragment();

    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    Intent intent = new Intent(this, AlertReceiver.class);

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, 0);


    alarmManager.setExact(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent);

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

    Toast.makeText(this, "First Notification Set.", Toast.LENGTH_SHORT).show();

    timePicker.show(getSupportFragmentManager(), "time picker4");

    hasSelected = 2;


}


/**

 * Method which sets the second daily notification

 */

private void startTwiceDailyNotification2(Calendar c) {

    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    Intent intent = new Intent(this, AlertReceiver.class);

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 2, intent, 0);


    alarmManager.setExact(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent);

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

    Toast.makeText(this, "Second Notification Set.", Toast.LENGTH_SHORT).show();


}


largeQ
浏览 140回答 0
0回答
随时随地看视频慕课网APP

相关分类

Java
我要回答