Android - приложение, запускающееся из корневого режима, а не возобновляющее тот, в котором оно было оставлено в последний раз (существующая ошибка) - PullRequest
0 голосов
/ 28 июня 2019

Я знаю, что это известная ошибка, и она уже зарегистрирована в Google.Я также просмотрел существующие посты здесь на SO, но упомянутый обходной путь не сработал для меня, поэтому я проверил, делаю ли я что-то не так.

Таким образом, мое приложение выложено так:У меня есть основное действие, которое запускает, а затем выполняет вход, и как только пользователь заканчивает вход в основное действие, возвращается с отображением фрагмента.Проблема в том, что когда я запускаю приложение, появляется главное действие, затем я нажимаю кнопку и появляется действие входа.Теперь, когда я перехожу в фоновый режим и возвращаюсь, вместо входа в действие отображается основное действие.

Ниже приведены 2 обходных пути, которые я пробовал в создании основного действия, но не работал:

if (!isTaskRoot
        && intent.hasCategory(Intent.CATEGORY_LAUNCHER)
        && intent.action != null
        && intent.action == Intent.ACTION_MAIN) {

    finish()
    return
}

if (!isTaskRoot && intent.flags != null && Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) {
    finish()
    return
}

Файл манифеста Android:

<activity
    android:name=".MainActivity"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustNothing"
    android:launchMode="singleTask"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="test-app" />
        <data android:host="loc" />
    </intent-filter>
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
        <data android:scheme="http" />
        <data android:host="*" />
        <data android:pathPattern="/.*/apps/testApp.*" />
    </intent-filter>
</activity>
<activity
    android:name=".SignInActivity"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustPan" />

Для представленияВойдите в активность:

startActivityForResult(Intent(this, SignInActivity::class.java), 123)

Есть ли что-то, что я делаю неправильно.Что-нибудь еще, что я мог попробовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...