У меня возникла проблема с получением моего pendingIntent
. Я сделал некоторые проблемы с использованием logcat и т. Д., И в конце концов я почти уверен, что моя проблема действительно в моем методе pendingIntent
. Времена, которые я установил, верны, и метод получает вызов, но ничего не происходит в назначенное время. Вот метод, который я использую для создания pendingIntent
В ожидании намерения получите услугу
public void scheduleAlarm(){
Log.d("Alarm scheduler","Alarm is being scheduled");
Intent changeVol = new Intent();
changeVol.setClass(this, VolumeService.class);
PendingIntent sender = PendingIntent.getService(this, 0, changeVol, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, time, sender);
//Toast.makeText(this, "Volume Adjusted!", Toast.LENGTH_LONG).show();
}
Вот класс обслуживания:
public class VolumeService extends Service{
@Override
public void onCreate() {
super.onCreate();
Log.d("Service", "Service has been called.");
Toast.makeText(getApplicationContext(), "Service Called!", Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
}
Бревно в scheduleAlarm()
классе работает так, как я планировал, но потом ничего не происходит, так что я предположим, что это мой pendingIntent
. Спасибо заранее!
Не могли бы вы предоставить, как вы получите значение времени? Используете ли вы систему. currentTimeMillis() + некоторое время для задержки? Вы определили службу в AndroidManifest.xml? –
@ VladimirLichonos Время предоставляется пользователем с помощью диалогового окна 'timePicker ', и я проверил triple с помощью logCat, чтобы убедиться, что время выбрано правильно; и это. Например, я проверил это ранее сегодня, и я ввел 3:45 pm (MST), и когда я проверил значение 'long', оно было правильно опубликовано 30:45 (30 августа). вторую часть вашего вопроса, я добавил в манифест, используя следующий фрагмент ' '. –
Ну, мне кажется, это прекрасно, но я бы попытался проверить больше с отменой тревоги и отменить и снова создать ожидающее намерения. Также пытается использовать только System.currentTimeMillis() для целей тестирования. Он должен работать и может показать вам, где проблема. –