Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-不推荐的方法和minApiLevel_Android_Deprecated_Android Api Levels - Fatal编程技术网

Android-不推荐的方法和minApiLevel

Android-不推荐的方法和minApiLevel,android,deprecated,android-api-levels,Android,Deprecated,Android Api Levels,有人问过类似的问题,但提供的答案并没有真正帮助我 假设我使用的是一个不推荐使用的方法,我的minApiLevel为X。建议替换不推荐使用的方法的api级别为Y 当Y>X(并且我不能或不想增加X)时,我应该怎么做?作为经验法则(如果有),我可以安全地忽略这一点(这意味着它永远不会在方法不推荐的Android版本上意外工作),还是应该实现这两个变体并根据SDK版本将它们放入if-else中?(假设我对旧的已弃用方法的功能感到满意。)当一个元素被标记为已弃用时,通常会提供一个替代方法,因此必须使用if

有人问过类似的问题,但提供的答案并没有真正帮助我

假设我使用的是一个不推荐使用的方法,我的minApiLevel为X。建议替换不推荐使用的方法的api级别为Y


当Y>X(并且我不能或不想增加X)时,我应该怎么做?作为经验法则(如果有),我可以安全地忽略这一点(这意味着它永远不会在方法不推荐的Android版本上意外工作),还是应该实现这两个变体并根据SDK版本将它们放入if-else中?(假设我对旧的已弃用方法的功能感到满意。)

当一个元素被标记为已弃用时,通常会提供一个替代方法,因此必须使用if/else为较新和较旧的API级别进行分支来实现这两个变体

这是一种不好的做法,不鼓励继续使用不推荐使用的元素。此外,考虑到它可能最终不再工作,并在未来的API级别被删除,迫使您重新访问和重写您的实现。 注释为@Deprecated的程序元素是不鼓励程序员使用的元素,通常是因为它很危险,或者因为存在更好的替代方案。编译器在未弃用的代码中使用或重写弃用的程序元素时发出警告

如果继续使用不推荐的元素会发生什么:

  • 您的代码将继续按原样工作,直到该元素在未来的API级别从SDK中删除,或者,SDK开发人员决定放弃其功能,这意味着它将无法工作
  • 您必须跟踪所有不推荐的用法,并测试在每个新的API级别版本中是否仍然有效
  • 如果在不推荐使用的元素中存在错误,SDK开发人员并不总是会修复该错误,当存在替代项时,他们可能会将其标记为“过时”。请注意,SDK中的错误意味着操作系统中需要补丁,并非所有供应商都会向其用户提供补丁

只需使用不推荐的一个。如果行得通,就行了。此外,如果你不告诉我这是什么方法,也没什么好说的。太模糊了。嗯,这就是我问问题的方式。我想知道在一般情况下在Android上使用不推荐的方法是否安全。即使它是安全的,如果它不是坏的做法。我认为“宁可实现这两个变体,并根据SDK版本将它们放在if-else中”是一个最佳选择。好吧,事实上,我可以安全地忽略它,但我不应该。谢谢(除了这更像是一个个人项目,我不打算在将来提高api级别,所以我可能可以使用一些不推荐的方法。)