【发布时间】:2020-11-13 08:26:52
【问题描述】:
我现在想知道使用 @SuppressLint("RestrictedApi") 注释是否安全。我很确定答案是否定的,所以我也想问一下为什么。
我猜开发团队想对 API 用户隐藏这样的restricted code。可能是由于未来的变化或因为代码旨在用作内部功能
带有androidx.preference:preference:1.1.1的示例代码:
public abstract class CustomAdapterPreferenceFragment extends PreferenceFragmentCompat {
@Override
protected PreferenceGroupAdapter onCreateAdapter(PreferenceScreen preferenceScreen) {
// this annotation removes warning that says PreferenceGroupAdapter can only be called from package names that start with androidx.preference
@SuppressLint("RestrictedApi")
final PreferenceGroupAdapter adapter = new PreferenceGroupAdapter(preferenceScreen) {
@Override
public void onBindViewHolder(PreferenceViewHolder holder, int position) {
super.onBindViewHolder(holder, position);
}
};
return adapter;
}
此示例中限制代码使用的注释链接:AOSP AndroidX
【问题讨论】:
-
@StanislavBondar 不,这是一条非常不同的 lint 规则。
标签: android annotations androidx