对Activity的最低SDK版本支持

时间:2013-07-28 10:49:06

标签: android

应用程序有一些活动,有些只在更高版本上运行。但由于活动支持mimeType的{​​{1}},因此我无法控制其发布。

intent-filter

类似于具有此 <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="image/*" /> </intent-filter> 的活动可以通过降低版本启动而不是必须启动。例如:活动必须在版本11及更高版本中运行,但android仍然会在较低版本的图像选择器对话框中显示它。有没有办法避免这种情况?

2 个答案:

答案 0 :(得分:2)

您必须使用intent-filter进行“控制器”活动。

当此活动开始时,它将检查当前的SDK级别,然后将Intent转发到较低或较高的SDK活动,然后转发finish()本身。

在您的情况下,这可以为您提供更大的灵活性,比如说您希望将平板电脑定位到第三项活动。


另一个论点可能是你的Activity应该测试SDK级别,然后根据这个来交换Fragments。即你的Activity与SDK无关,但它是一个控制器,用于显示正确的片段。

参考文献:

http://developer.android.com/training/basics/supporting-devices/platforms.html http://developer.android.com/training/basics/supporting-devices/platforms.html#version-codes

http://developer.android.com/training/backward-compatible-ui/abstracting.html

http://developer.android.com/training/backward-compatible-ui/using-component.html

正如您从参考文献中看到的那样,您应该阅读培训文档

答案 1 :(得分:2)

如果你只是在寻找XML配置,我可以建议你如何在Android API演示中完成它。

他们将AndroidManifest中的Activity声明为已禁用或启用,具体取决于此android:enabled="@bool/atLeastHoneycomb"之类的API版本,其中@bool/atLeastHoneycomb只是values-v11中设置为true的标志在默认的values文件夹中为false(如前所述,您可以查看Android API演示,了解更多详情)。

相关问题