Android Studio中startActivityForResult未标记为废弃问题咨询
问题解答
问题1:为何startActivityForResult未被标记为废弃?
- 首先要明确:
startActivityForResult的废弃注解是Jetpack组件层面的规则,而非Android原生Framework层的API废弃:- Framework层的
android.app.Activity类中,到API 31版本为止都没有为startActivityForResult添加@Deprecated注解,只有AndroidX库的ComponentActivity(以及继承自它的AppCompatActivity)在androidx.activity:activity:1.2.0-alpha02及更高版本、androidx.fragment:fragment:1.3.0-alpha02及更高版本中才添加了废弃标记。 - 如果你项目依赖的上述AndroidX库版本低于对应阈值,或者你继承的是原生
android.app.Activity而非AndroidX的AppCompatActivity,即便compileSdkVersion设为31也不会看到废弃提示。
- Framework层的
- 其次检查IDE代码检查配置:
- 确认「设置>编辑器>检查>Java>代码成熟度>已废弃的API」的严重级别没有被设为「无」,Kotlin项目同理检查对应Kotlin分类下的废弃API检查开关是否开启。
问题2:是否存在更多Android Studio未提示的未知废弃方法?
存在,常见的未提示场景包括:
- 依赖的库版本过低:Jetpack组件、第三方库的API废弃是随库版本迭代添加
@Deprecated注解的,只要你本地依赖的库版本没有包含该注解,就不会收到提示,和compileSdkVersion无关。 compileSdkVersion低于API废弃的版本:Framework层的API如果是在高于你当前compileSdkVersion的版本中标记废弃的,IDE也无法识别。- 隐藏废弃API:部分系统API被添加了带
@hide标记的废弃注解,普通应用开发场景下无法访问到该注解,也不会收到提示。
内容的提问来源于stack exchange,提问作者JP711
相关产品推荐
相关产品推荐

