Intereting Posts
Android dragshadowbuilder размер тени NullPointerException в HardwareRenderer Как предотвратить перезапуск приложения при использовании пусковой установки после магазина? Как получить название города по широте и долготе в андроиде? «Невозможно выполнить это действие после onSaveInstanceState» – почему я получаю это исключение из метода onResume моей активности? После обновления Android Studio нет папки с пакетом обновления Страница регистрации пользователя не проверяется Добавление ProgressBar в ListView / OnClick называется единовременным Разбивается ли Multicast на Android 2.0.1 (в настоящее время на DROID), или я что-то упускаю? Gradle пропускает задачу X, поскольку у нее нет исходных файлов Пользовательский Android WebView для открытия всех ссылок внутри, кроме ссылок на YouTube Не удалось запустить './qemu/windows-x86_64/qemu-system-i386.exe': нет такого файла или каталога Geting "уже сосредоточено, игнорируя усиление фокуса: com.android.internal.view.IInputMethodClient $ Stub $ Proxy" в Android Перестроить, синхронизировать Gradle и Clean для всего одного модуля с Android Studio Android: Как поймать Fatal Exception, выброшенную из библиотеки ссылок?

Повторно открыть фоновое приложение через элемент уведомлений

У меня есть приложение с вкладками и записью, когда я отправляю их на фон (нажмите кнопку «Главная») и попробуйте повторно открыть приложение, щелкнув по панели уведомлений, приложение перезагрузится (последняя выбранная вкладка будет потеряна).

Когда я удерживаю кнопку «домой», если приложение находится в фоновом режиме и выбирает его там или нажимает значок приложения на рабочем столе, предыдущее состояние восстанавливается по умолчанию (выбрана правильная вкладка)

ИМО намерение уведомления ошибочно, но я не уверен, как это исправить.

Короче: Как вернуть фоновое приложение на передний план, когда я нажимаю кнопку уведомления?

спасибо!

    Поместите эти две строки. Это возобновит текущую приостановленную деятельность:

     notificationIntent.setAction(Intent.ACTION_MAIN); notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
     Intent intent = new Intent(Application.getContext(), ActivityHome.class); intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); Application.getContext().startActivity(intent); 

    Я столкнулся с одной и той же проблемой и решительно искал ответ, но вот трюк: вместо попытки перезапустить приложение с сохраненным состоянием, используя намерение уведомления, откройте пустое действие, используя намерение уведомления и метод onCreate () Деятельность, просто закончить (). Это вернет вас к последнему просмотренному действию в приложении.

     public static boolean isApplicationRunningBackground(final Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> tasks = am.getRunningTasks(am.getRunningAppProcesses().size()); for (RunningTaskInfo runningTaskInfo : tasks) { if (runningTaskInfo.topActivity.getPackageName().equals(context.getPackageName())) { MyLog.i("UTIL", "packageName:" + runningTaskInfo.topActivity.getPackageName()); MyLog.i("UTIL", "className" + runningTaskInfo.topActivity.getClassName()); return true; } } return false; } Intent notificationIntent; if (Util.isApplicationRunningBackground(context)) { notificationIntent = new Intent(context, MainView.class); } else { notificationIntent = new Intent(context, Splash.class); } 

    Вы внедряете методы onSaveInstanceState, как рекомендовано в документации по жизненному циклу ?

    Возможно, что когда вы приостанавливаете приложение и сразу возвращаетесь к нему, приложение остается в памяти в фоновом режиме. Однако вы не можете зависеть от этого, поэтому вы должны сохранять состояние, как текущая открытая вкладка, каждый раз, когда вы входите в фоновый режим, и восстанавливать его, когда вы снова активируете.

    Использовать два флага в намерениях

     intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);