我有一个StandaloneActivity来处理动作。SEND完成一些工作并完成。
<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(我的应用程序)最近可见,在打开它时,它正在处理先前的意图并完成。 StandaloneActivity仍是最新消息。
答案 0 :(得分:0)
我试图用一个简单的演示应用程序重新创建相同的设置,并且在尝试了不同的启动模式和标志之后,我找到了解决方案。 我必须从最近的活动中排除此活动,因此我在清单中的StandaloneActivity中添加了以下内容以及现有的设置-
android:excludeFromRecents="true"