android – 片段和意图过滤器

我们都知道如何在
AndroidManifest.xml中使用intent-filters来声明搜索,推送等活动的功能.我目前使用这样的intent-filter以下列方式注册自定义URL方案:

<activity android:name="NameOfActivity" >
    <intent-filter >
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWABLE" />
        <data
            android:host=""
            android:scheme="customscheme" />
    </intent-filter>
</activity>

这一切都很顺利,直到我决定将我的所有活动转换为片段,因为我需要以不同的方式在表格上显示用户界面.现在,在声明为大或大的设备上,我没有在活动之间切换,而是根据请求移除和添加新片段.这个选择被视为屏幕的左侧总是显示相同的内容,因此我不是添加这些内容而是所有活动,而是改变片段.

这里的问题是,虽然intent-filter在手机上启动了正确的活动,但不应在平板电脑上启动此活动.相反,我想在片段中处理此URL.截至目前,我认为无法解决这个问题.一种想法是以编程方式添加intent-filter,但经过一些研究后我无法弄清楚这是否可行.另一个想法是以某种方式在片段上添加intent-filter,但是这不起作用,因为片段无法在没有托管它的活动的情况下启动.

简而言之:
在手机上,我需要一个活动来处理intent-filter,但在平板电脑上我需要另一个活动来处理intent-filter.

有没有办法实现这个?

最佳答案 是不是可以让你的intent-filter活动决定设备的分辨率,然后为此启动适当的活动?

此外,我认为Fragments的设计考虑了您的情况:描述用户界面的各个方面,然后根据屏幕分辨率显示全部或部分功能.

http://developer.android.com/guide/topics/fundamentals/fragments.html

点赞