Автономная прозрачная активность проявляется в последних событиях с предыдущим намерением - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть StandaloneActivity, которое обрабатывает действие. ОТПРАВИТЬ, что-то делает и заканчивает.

<activity
        android:name=".StandaloneActivity"
        android:launchMode="singleInstance"
        android:theme="@style/Theme.Transparent">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />

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

            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>

Имеет прозрачную тему:

<style name="Theme.Transparent" parent="Theme.AppCompat">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

StandaloneActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    handleIntentExtras(intent)
}

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    handleIntentExtras(intent)
}
private fun handleIntentExtras(intent: Intent) {
// do some work and set extras to intent
//Calling setResult() as I start this activity from another activity with startActivityForResult() for another usecase.
    setResult(Activity.RESULT_OK, intent)
    finish()
}

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

Странно, что вышеописанная настройка работает, как и ожидалось, в Java-версии приложения, но с Kotlin (миграция с Java на Kotlin) StandaloneActivity (мойapp) виден в последних статьях и при его открытии обрабатывает предыдущее намерение и завершает работу.StandaloneActivity остается в центре внимания.

1 Ответ

0 голосов
/ 22 ноября 2018

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

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