我们都知道在AndroidManifest.xml中可以使用intent-filters声明活动的各种能力,例如搜索、推送等。我目前使用此类intent-filter以以下方式注册自定义URL方案:
这一切都很顺利,直到我决定将所有活动转换为片段,因为我需要在表格上以不同的方式显示用户界面。现在,在被声明为大型或更大的设备上,我只有一个活动,根据需要删除和添加新的片段,而不是在不同的活动之间切换。作出了这个选择,因为屏幕左侧始终显示相同的内容,所以我改变片段而不是向所有活动添加此内容。
问题在于虽然intent-filter在手机上启动正确的活动,但这个活动不应该在平板电脑上启动。相反,我希望在片段中处理此URL。目前,我看不出修复这个问题的办法。一个想法是通过编程方式添加intent-filter,但经过一些研究,我无法确定是否可以实现。另一个想法是以某种方式在片段上添加intent-filter,但这不起作用,因为片段不能在没有托管它的活动的情况下启动。
简而言之,在手机上,我需要一个活动来处理intent-filter,但在平板电脑上,我需要另一个活动来处理intent-filter。
有没有办法实现这一点?
<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。
有没有办法实现这一点?