У меня есть требование перезапускать приложение каждые 3 часа

#android #android-intent #alarmmanager #android-jobscheduler

Вопрос:

Я разрабатываю приложение для Android, в котором я показываю медиа в слайд-шоу. Приложение продолжает работать 24 на 7, так как оно используется в рекламных целях, но иногда оно автоматически выходит из строя через несколько дней, не знаю, почему, поэтому клиент попросил меня автоматически перезапускать приложение каждые 3 часа. Он должен перезапускать полное приложение каждый раз, когда тратится 3 часа

Я видел другие ответы на тот же вопрос, но они не работают на меня

Я вызываю этот код в onCreate моей основной активности

             PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(),1,restatIntent,PendingIntent.FLAG_CANCEL_CURRENT);
            AlarmManager alarmManager = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
            alarmManager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()   1000,pendingIntent);
            System.exit(0); 
 

этот код закрывает приложение, как только приложение открывается, а затем запускает сбой приложения с этой ошибкой

Отклонение повторного инициализации ранее неудачного класса java.lang.Класс<androidx.core.view.ViewCompat$2>: java.lang.NoClassDefFoundError: Не удалось разрешить: Landroid/просмотр/Просмотр$OnUnhandledKeyEventListener;

Я хочу периодически перезапускать свое приложение каждые 3 часа. Любая помощь будет признательна

Комментарии:

1. Не могли бы вы, пожалуйста, прикрепить полную трассировку стека? Кроме того, 1 предложение Вы должны показать диалоговое окно через три часа и выйти из приложения после подтверждения, а не выходить принудительно, так как это приведет к очень плохому пользовательскому опыту. Возможно, пользователь что-то читает или смотрит, и приложение выходит случайным образом.

2. Мы должны сделать это решительно по требованию клиента

3. Правильный. Я понял это требование, но диалог также делает то же самое, но он не должен быть недопустимым cancelable = false . Это заблокирует пользователя от чтения и сообщит ему, что произошло, вместо того, чтобы просто закрыть его. Можете ли вы прикрепить stacktrace?