Сбой AlarmManager при запуске из службы в Зефир и выше - PullRequest
0 голосов
/ 04 февраля 2019

Пытаюсь настроить простой диспетчер тревог в службе.

test_cases.

Если я запускаю диспетчер тревог из действия, он работает

    Intent intentzz = new Intent(getApplicationContext(), Homev2.class);
    PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 0, intentzz, PendingIntent.FLAG_CANCEL_CURRENT);

    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.SECOND, 5);
    AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
    am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pi);

Однако, если я пытаюсь запустить то же самое из службы, он просто не запускается, и я не получаю никаких ошибок

public class MyService extends Service {
public MyService() {
}

@Override
public IBinder onBind(Intent intent) {
    // TODO: Return the communication channel to the service.
   // throw new UnsupportedOperationException("Not yet implemented");
    return null;
}

@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.e("we here", "here");

    Intent intent1 = new Intent(getApplicationContext(), SettingsActivity.class);
    PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 1,intent1, 0);
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.MINUTE, 5);
    AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
    am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pi);
    return super.onStartCommand(intent, flags, startId);
}
}

В чем может быть проблема?

1 Ответ

0 голосов
/ 04 февраля 2019

Попробуйте изменить это:

    Intent intent1 = new Intent(getApplicationContext(), SettingsActivity.class);
    PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 1,intent1, 0);

На это:

    Intent intent1 = new Intent(this, SettingsActivity.class);
    PendingIntent pi = PendingIntent.getActivity(this, 1,intent1, 0);
...