是什么原因促使 android 开发团队弃用某些系统方法,我知道有些方法被替换为另一种方法,这些方法更加实用和有用,但有些甚至没有被另一种方法替换,或者只是被一种通用的方法替换尝试更具体地处理某些元素时没有帮助的大方法,例如 Date
类中的一些方法:
Date mDate = new Date();
mDate.getDate(); //Deprecated
mDate.getDay(); //Deprecated
mDate.getHours(); //Deprecated
mDate.getMinutes(); //Deprecated
mDate.getMonth(); //Deprecated
mDate.getSeconds(); //Deprecated
mDate.getYear(); //Deprecated
mDate.getTimezoneOffset(); //Deprecated
现在唯一存在的是:
mDate.getTime(); // gives the whole Time & Date as a `long` Value in milliseconds
现在,当我得到一个 Date Object
并尝试得到 Year 时,我必须:
- 声明一个新的
日历对象
。 - 使其等于日历类的一个实例。
- 将这个日历对象时间设置为我得到的日期。
- 从此日历对象中提取所需的属性。
如果该数据对象仅包含时间为零的日期会怎样。现在我必须做一个解决方法,在应用日期之前保存日历的时间,然后在应用日期之后再次将保存的时间重置为它。
找到另一个例子 here这表明整个 PictureListener
接口(interface)都被弃用,并且没有迹象表明应该用什么来替代它。
第三个例子,当想要获取屏幕宽度和高度时,这是直接的:
int windowWidth, windowHeight;
windowWidth = getWindowManager().getDefaultDisplay().getWidth(); // Deprecated
windowHeight = getWindowManager().getDefaultDisplay().getHeight(); // Deprecated
但是现在:
int windowWidth, windowHeight;
DisplayMetrics metrices = new DisplayMetrics();
mContext.getWindowManager().getDefaultDisplay().getMetrics(metrices);
windowWidth = metrices.widthPixels;
windowHeight = metrices.heightPixels;
最佳答案
您提到的 java.util.Date 的方法 并未被 Android 团队弃用,但在 Java 1.1 中被 Sun 弃用。这只是 Java 遗留问题的一个例子。如果您认为 Calendar API 难以忍受,我会考虑改用 Joda Time。
关于android - 为什么会发生弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26605624/