Я пытаюсь запланировать задачу «тост-сообщение» для отображения в выбранное пользователем время, но после этого ничего не отображается, и я не вижу, что не так в коде. Вот мой кодПланирование задачи с помощью AlarmManager
public class TimePickerFragment extends DialogFragment implements
TimePickerDialog.OnTimeSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
return new TimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
//set The Calendar to to the wanted time!
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.AM_PM, Calendar.AM);
Intent setMsg = new Intent(MainActivity.this, TaskReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, setMsg, 0);
AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
manager.setExact(AlarmManager.ELAPSED_REALTIME, calendar.getTimeInMillis(), pendingIntent);
}
}
public class TaskReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "it is working!", Toast.LENGTH_SHORT).show();
}
}
Если есть лучший способ планировать такую задачу, пожалуйста, идти вперед и представить его.
Когда я даю функции showToastAfterUserSpecifiedDelay определенное время int как «60», оно не появляется на самом деле через 60 секунд, но оно просто продолжает показывать с 0 секунд. – kendhia
@kendhia Я изменил начальную задержку на 60 секунд. Это видно из кода –
. Я хотел, чтобы отложенное время должно быть параметром, заданным для функции, поэтому изменение начальной задержки на «секунды», а время, равное 60, должно сделать правду – kendhia