Операция SingleTask создается несколько раз в одном процессе - PullRequest
0 голосов
/ 15 октября 2019

У меня есть приложение запуска , которое имеет singleTask активность в качестве основной точки входа. Когда пользователь переходит к другому действию или к стороннему приложению, а затем нажимает кнопку home , это действие должно быть перенесено на передний план. Однако то, что я испытываю, это то, что для первой кнопки home нажмите только , вместо этого создается другой экземпляр (создается новая задача, вызывается onCreate()). В то же время старая задача еще жива , содержащая исходный экземпляр этого действия, но невозможно вернуться к этой задаче / деятельности или вывести ее на передний план.

После первого нажатия кнопки «Домой» следующее нажатие кнопки «Домой» выводит 2-й экземпляр этого действия на передний план. Не уверен, почему не первый метод onNewIntent() самого первого экземпляра вызывается в первый раз ... Так что это происходит только один раз, после этого всегда вызывается метод onNewIntent() второго экземпляра. Это означает, что исходное действие будет недоступно ..

Я пытался вывести задачу на передний план, ничего не происходило ... Например, если ее никогда не было (но задачатам с активностью, она не убита ни в какой момент). Я могу найти задачу из кода, а также с помощью сценария оболочки. Он содержит исходное действие

Это происходит на Android TV (Os: Pie) . Есть идеи, что может быть причиной этого? Я не очень понимаю, как это происходит ... Кстати, результат такой же, если я установил активность на singleInstance.

Активность выглядит следующим образом:

<activity
            android:name=".activities.MainActivity"
            android:excludeFromRecents="true"
            android:launchMode="singleTask"
            android:theme="@style/AppTheme">
            <intent-filter android:priority="2">
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.ALL_APPS"/>

                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>

Iпробовал чередовать перечисленные выше атрибуты (priority, excludeFromRecents, taskAffinity), также полностью их удалял, они не имели никакого эффекта ...

При нажатии кнопки home отправляется следующее намерение:

  • action: "android.intent.action.MAIN"
  • категория: "android.intent.category.HOME"
  • компонент: вышеуказанная активность

также имеетнекоторые дополнения, но я не думаю, что это актуально

...