如何通过intent-filter启动活动时关闭以前的活动?

时间:2015-11-16 22:21:40

标签: android android-activity activity-stack

我有一个Activity,由此intent-flter从浏览器启动:

   <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="myapp" />
            <data android:host="someaction"/>
            <data android:path="/" />
        </intent-filter>

但如果我的应用程序的其他活动未被销毁,它们将出现在已启动的活动后面。我需要以某种方式使用CLEAR_TOP标志但使用意图过滤器。 Activity的launchMode设置为singleTop 我不能使用singleInstance或singleTask。那么如何才能启动我理想的活动而不启动其他活动呢?

1 个答案:

答案 0 :(得分:1)

解决方案1 ​​

我会尝试使用BroadCast次事件。从您开始的Activity发送一个,并将BroadcastReceivers添加到您要关闭的内容中。

检查this answer,我认为它可以帮到你。

解决方案2

我也会尝试一下:将活动的意图标记设为FLAG_ACTIVITY_CLEAR_TOP。您还可以考虑使用以下意图标记:FLAG_ACTIVITY_CLEAR_TASK FLAG_ACTIVITY_NEW_TASK