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

时间:2014-03-12 17:32:18

标签: android intentfilter android-launcher

我不知道你的问题是否正确,所以让我解释一下:

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

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

清单:

<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);
}

有没有人知道其他应用程序启动我的应用程序的原因以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

尝试为您的指定活动设置android:noHistory
取自documentation

Whether or not the activity should be removed from the activity stack and finished (its finish() method called) when the user navigates away from it and it's no longer visible on screen — "true" if it should be finished, and "false" if not. The default value is "false". A value of "true" means that the activity will not leave a historical trace. It will not remain in the activity stack for the task, so the user will not be able to return to it.