BroadcastReceiver не работает, когда приложение закрыто - PullRequest
0 голосов
/ 19 апреля 2020

Пожалуйста, помогите мне. Когда приложение закрыто, мой приемник не работает. Создан менеджер тревог, чтобы получать повторяющиеся уведомления, когда приложение открыто, оно работает, но при закрытии не работает. Последние 5 часов я пытаюсь решить, но не могу. Мои коды:

public class Receiver extends BroadcastReceiver {

Context context;
@Override
public void onReceive(Context context, Intent intent) {
    this.context = context;
    final PendingResult pendingResult = goAsync();
    Task asyncTask = new Task(pendingResult, intent);
    asyncTask.execute();
   NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "word")
            .setSmallIcon(R.drawable.playicon)
            .setContentTitle("Word")
            .setContentText("Hi")
            .setPriority(NotificationCompat.PRIORITY_DEFAULT);

    NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
    notificationManagerCompat.notify(101,builder.build());




}

Приемник

<receiver android:name=".Receiver" />

А это мой код тревоги:

public void createAlarm(){
    Intent intent = new Intent(MainActivity.this, Receiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0,intent,0);

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
   // alarmManager.set(AlarmManager.RTC_WAKEUP,60000, pendingIntent);
   /* alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
            SystemClock.elapsedRealtime() + 60000,
            60000, pendingIntent);*/

    if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 60000, 60000 , pendingIntent);
    } else if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
        alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 60000, 60000 , pendingIntent);
    } else {
        alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 60000, 60000 , pendingIntent);
    }
}
...