Android - 在其他应用程序中单击 Web 链接后,其他应用程序启动我的应用程序

标签 android intentfilter android-launcher

不知道你是否答对了我的问题,所以让我解释一下:

当用户点击任何其他应用中的网络链接后,我的应用会显示在选择器中,然后用户点击我的应用,我的应用会在 webview 中显示该链接。这很好用。

但是,问题是当用户通过单击主屏幕或应用程序抽屉上的图标再次启动另一个应用程序(之前调用了我的应用程序)时,它会再次打开我的应用程序而不是原始应用程序。

list :

<activity
    android:name="com.droidfox.app.browser"
    android:label="@string/browser"
    android:theme="@android:style/Theme.Black.NoTitleBar"
    android:launchMode="singleTop"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize" >
    <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="http" />
        <data android:scheme="https" />
    </intent-filter>
</activity>

后退按钮覆盖:

@Override
public void onBackPressed () 
{
    moveTaskToBack(true);
}

有谁知道为什么其他应用会启动我的应用,我该如何解决这个问题?

最佳答案

尝试为给定的 Activity 设置 android:noHistory
取自documentation :

当用户离开它并且它在屏幕上不再可见时,是否应该从 Activity 堆栈中删除并完成(它的 finish() 方法被调用)——如果应该是,则为“true”完成,如果没有,则为“false”。默认值为“假”。 “true”值表示该 Activity 不会留下历史痕迹。它不会保留在任务的 Activity 堆栈中,因此用户将无法返回到它。

关于Android - 在其他应用程序中单击 Web 链接后,其他应用程序启动我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359430/

相关文章:

java - 合并两个音频文件

android - 服务 list 中的 Intent 过滤器有什么用?

android-intent - 在运行时注册 CATEGORY_HOME 意图

android - 启动器图标在 Oreo 8.0/8.1 中不显示

android - 我的启动器应用程序没有自动更新

android - 使用 NoActionBar 主题时显示操作栏

java - Joda 时间无效格式到期日期 facebook 访问 token Java

c# - 如果用户开始使用 @ 特殊字符(如 whatsapp 标记功能)打字,Xamarin Android 如何显示列表?

java - 广播接收器未收到 Intent

android - 在我的应用程序中使用图标包