我通过反射来调用函数,这可以从froyo开始。如何标记此调用需要froyo?
有注释@TargetApi(Build.VERSION_CODES.FROYO)
,但如果此版本不匹配,这只会阻止我想要生成警告的警告。
如果SDK网站没有办法可以编写这样的注释吗?我不熟悉。
答案 0 :(得分:1)
注释只是元数据,需要工具来实际处理它们,没有lint检查来反转你想要的东西:根据http://tools.android.com/tips/lint-checks指示某些东西需要某个API。
如果您要提供API,最好在函数的Javadoc中记录需求,以便调用者知道该特定调用需要Froyo。在函数中,如果不满足此前置条件或者以其他方式处理它,则应该抛出异常。
如果要创建库,另一个选项是将该项目的minSdk版本设置为8或更高。
您还可以编写自己的lint规则,我会猜测它会进行自定义检查。有关编写lint规则的更多详细信息,请访问:http://tools.android.com/tips/lint-custom-rules。缺点是api的用户必须执行一些自定义设置才能激活规则。
答案 1 :(得分:0)
我完全忘了提及这一点,但是这个注释 @RequiresApi
实际上是在 2016 年的 Support Lib v24 中引入的,after raising a bugreport。