在API级别17上从Android浏览器启动活动

时间:2012-12-21 09:13:31

标签: android

我有一个Web服务,它使用自定义Mime类型提供配置文件。我想在用户点击链接时使用intent-filter启动我的活动。它适用于所有Android版本,但在4.2(API级别17)中它不起作用。 这是我的Manifest.xml

        <activity android:name="activityName" 
              android:screenOrientation="nosensor"
              android:theme="@style/Theme.Sherlock.NoActionBar"
              android:exported="true">
         <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" />
            <data android:mimeType="application/vnd.xxx.yyy"/> 
        </intent-filter>
    </activity>

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

解决,. 只需将android:launchMode =“singleTask”添加到清单中即可。对于android 4.2中的一些奇怪的原因,该标志是强制性的.....

答案 1 :(得分:0)

好吧,你的应用程序适用于4.2硬件(在Galaxy Nexus上测试)。它会短暂弹出浏览器(我在4.1 x86模拟器上没有注意到,但它可能太快了)。但是,然后控制权将传递给您的活动。

我的猜测是,在模拟器上实现的浏览器中存在导致问题的错误。

话虽如此,如果这真的适用于某种专有配置文件,我建议您在应用中处理下载。不要让人们点击TextView - 超链接或WebView,而是在您自己的应用中提供配置文件列表,然后使用HttpUrlConnection(或HttpClient下载它)你自己。