[英]Which way does the Android minimum SDK work?
如果我已将最低SDK版本设置为16(Jelly Bean 4.1),并且以与该API级别兼容的方式对大部分项目进行了编码,但是我有一个小的方法需要SDK版本25,那么该方法会停止吗?整个应用程序在具有Jelly Bean平台的设备上运行? 还是会允许他们安装它,而仅该特定部分不起作用?
您可以使用注释来消除方法中的这些问题。
@TargetApi(25)
1.您需要使用您正在谈论的抽象方法创建一个抽象类。
public abstract class YourClass {
public abstract void doSomething();
}
2.二次执行。 一个用于旧版本,另一个用于新版本,在新版本中,您放置了@TargetApi。
旧版:
public class YourClassLegacy extends YourClass { public void doSomething(){ //Legacy method } }
实现25版本:
@TargetApi(25) public class YourClassNew extends YourClass { public void doSomething(){ //25 version method } }
3.在调用this方法的方法( doSomething() )中,您需要实现此方法。
public static void methodFoo(Context context) {
if (android.os.Build.VERSION.SDK_INT >= 25) {
//call to YourClassNew.doSomething();
}else{
//call to YourClassLegacy.doSomething();
}
}
那么您需要将自己编码为版本25,然后重新编码旧的方法以跟上趋势。 Gradle WILL和MAY可能存在问题,高级API不支持某些方法,尤其是人们在自己的方法中使用的库
您应该使用支票为provide木版本提供替代方法。
if(android.os.Build.VERSION.SDK_INT >= 25) {
// use new method
} else {
// use alternative method
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.