У меня есть виджет, в котором я говорю. При нажатии кнопки говорить на виджета я открываю MainActivity, который объявляется в верхней части манифеста.В ожидании намерений дополнительные не очищаются, даже если активность создана заново
Ниже код на кнопку говорить виджет
Intent speakIntent = new Intent(context, MainActivity.class);
speakIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP);
speakIntent.putExtra(Constants.IS_LAUNCH_SPEAK, true);
speakIntent.setAction(ACTION_WIDGET_SPEAK_SCREEN);
PendingIntent configSpeakPendingIntent = PendingIntent.getActivity(
context, Utils.generateRandom(), speakIntent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(
R.id.btn_speak, configSpeakPendingIntent);
Это открывает Google говорят диалог и работает отлично.
Но если я нажимаю назад в этом диалоге и минимизировать приложение, нажав кнопку назад на возобновление приложения снова показывает говорить диалог, даже если приложение не запускается из виджета
SO умысла дополнительных не получает очищенные, даже если деятельность Я также попытался очистить extras с помощью removeExtra, но это также не работает
Поскольку активность имеет режим запуска в одиночном режиме в манифесте, я проверил, получилось ли OnNewIntent вызвано или нет, но OnNewIntent не получает вызов oncreate, вызывающийся при возобновлении приложения
Намерение e xtras не становятся ясными при вызове из события виджета, хотя активность отключена и removeExtra не работает
Как исправить это.
То же самое происходит при открытии деятельности через уведомление Ниже код
Intent intent = new Intent();
intent.putExtra(Constants.SOME_VALUE, value);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, Utils.generateRandom() /* Request code */, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
попробуйте также использовать PendingIntent.FLAG_ONE_SHOT в сочетании с FLAG_UPDATE_CURRENT – kimchibooty
так PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_UPDATE_CURRENT флаг одного выстрела будет следить за тем, чтобы определенное ожидающее намерение использовалось только после того, как – kimchibooty
попробовал его также не работает – apk