нужно открыть домашнюю активность на спине нажатой android - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть стек активности в обычном случае A -> B -> C, и когда я получил уведомление pu sh и реализовал click_action, он открывает Activity C, что правильно.

Теперь, что нужно, это когда активность C открывается из pu sh уведомление после нажатия кнопки назад закрывается и все приложение уходит в фоновом режиме, но мне нужно перейти на главный экран (действие A)

<activity
    android:name="Activity_A"
    android:exported="false"
    android:screenOrientation="sensorPortrait"
    android:theme="@style/MyAppTheme"
    android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
    android:name="Activity_B"
    android:exported="false"
    android:screenOrientation="sensorPortrait"
    android:theme="@style/MyAppTheme"
    android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
    android:name="Activity_C"
    android:exported="false"
    android:screenOrientation="sensorPortrait"
    android:theme="@style/MyAppTheme"
    android:windowSoftInputMode="adjustPan">
    <intent-filter>
        <action android:name="Activity_C" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

Ответы [ 3 ]

1 голос
/ 17 февраля 2020

Это происходит потому, что обычно предыдущие действия сохраняются в стеке, и когда пользователь нажимает кнопку «назад», стек вызывается так, как я понял из вашего вопроса, если вы хотите открыть Домашнюю активность через действие C, просто вызовите намерение из действия C to Home Activity, переопределив метод onbackpressed () в Activity C. Вот пример.

Intent homeIntent = new Intent(this,HomeActivity);
startActivity(homeIntent);
finish();

fini sh () используется для удаления суммированных действий.

0 голосов
/ 17 февраля 2020

Когда вы создаете Notification, добавьте FLAG_ACTIVTY_NEW_TASK и FLAG_ACTIVTY_CLEAR_TASK к Intent перед созданием PendingIntent и Notification.

. Это приведет к ActivityC к начать работу с новым заданием, очистив все предыдущие действия, которые могли быть там. После нажатия НАЗАД в ActivityC приложение не будет выполнять никаких активных действий, что вернет пользователя на экран HOME. Повторный запуск приложения начнется с ActivityA.

Это не повлияет на нормальное развитие действий с A->B->C.

0 голосов
/ 17 февраля 2020

Вы можете добавить нижнюю строку в AndroidManifest. xml файл в Деятельности C.

android:launchMode="singleTop"

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

...