我有一个带有public void username(String username1) {
utils.waitForElements(username, KnowsTestContext.timeout, KnowsTestContext.driver);
username.sendKeys(username1);
phonefield.click();
if (usernamevalidation.isEnabled()) {
System.out.println("Failed");
} else {
System.out.println("Continue");
}
}
public void phone(String phone1) {
utils.waitForElements(phone, KnowsTestContext.timeout, KnowsTestContext.driver);
phone.sendKeys(phone1);
}
,minSdkVersion = 14
和compileSdkVersion = 27
的应用。考虑在API 16中添加的字段或方法,例如:
targetSdkVersion = 27
如果删除if语句,我将在Android Studio中收到一条警告,提示必填字段API级别为16(当前最小值为14):android.view.View。#SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 。
因此,如果我从这样的方法或字段中删除if语句,则方法调用的结果将被忽略,或者会抛出异常,表明未找到方法,具体取决于在API小于16的设备上运行时所调用的方法到目前为止,一切都很好。
但是,如果我使用API 24中添加的Collections.unmodifiableList,一切正常。运行API级别低于24的设备不会发生崩溃,甚至没有像上述情况一样出现的棉绒警告,我得到了预期的结果。此PR可能有助于确认 我得到正确的结果。
此外,在使用API 24中已弃用的if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
(由if-else包围)时,我得到了一个警告,说 fromHtml(String)自API 24起已弃用。
android.text.Html.fromHtml(String)
我在else块中得到警告。我试图重新运行皮棉,但收到此警告。
所以我的问题是我该如何使用 Collections.unmodifiableList 而不会出现任何错误且没有棉绒警告?但是即使使用if-else语句后,也会收到 Html.fromHtml(String)的警告,并且可以使用添加的 Html.fromHtml(String,int)在运行API 14的设备上的API 24中显示。
我知道在API级别X中添加意味着我需要最低API级别X才能使用该方法,否则,我应该崩溃或没有结果。我的理解有问题吗?我如何知道可以在哪些API级别上使用哪些方法?在这种情况下,我是否应该依靠棉绒警告,因为官方文档说在API 24中添加了该方法,但该方法可以在运行API 16的设备上运行?
我已经搜索了SO和Android的官方文档,但找不到答案。