所以我只需要将我的最低API级别提升到11 (添加首选资源被折旧)-结果是9-10占据了大约50%的市场。所以我的问题是,是为了迎合姜饼市场而抑制警告更好,还是有一种不同的方法来使我的偏好引用不使用偏好片段?
发布于 2013-02-13 06:58:37
我将实现这两种类型(在11+中工作的类型和在10-中工作的类型),然后对它们使用条件检查。这是用this answer编写的相当详细的代码。
基本上,您最终使用PreferenceFragment设置OtherPreferencesActivity,然后使用不推荐使用的PreferenceActivity设置PreferencesActivity。(您的APK不会因为包含这些不推荐使用的代码而中断,只要您使用版本检查,这样将来删除它时,它就不会试图找到它。)
if (Build.VERSION.SDK_INT < 11) {
startActivity(new Intent(this, PreferencesActivity.class);
} else {
startActivity(new Intent(this, OtherPreferencesActivity.class);
}请记住,您会希望他们尽可能多地使用彼此的方法,这样您就不会重复代码。
最后一个技巧:@TargetApi(11)和@SuppressWarnings("deprecation")在这里会派上用场。只需小心,这样做不会忽略其他不推荐使用的代码。
发布于 2013-02-13 06:56:43
“折旧”并不意味着你不能使用它,如果你运行代码会破坏你的系统。这意味着官方不推荐使用此方法,并且此方法可能会从api中删除。但我们不知道什么时候。所以我会说,目前在这种情况下使用它是可行的。
https://stackoverflow.com/questions/14843341
复制相似问题