android - 为什么会发生弃用?

标签 android deprecated android-date

是什么原因促使 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 时,我必须:

  1. 声明一个新的日历对象
  2. 使其等于日历类的一个实例。
  3. 将这个日历对象时间设置为我得到的日期。
  4. 从此日历对象中提取所需的属性。

如果该数据对象仅包含时间为零的日期会怎样。现在我必须做一个解决方法,在应用日期之前保存日历的时间,然后在应用日期之后再次将保存的时间重置为它。

找到另一个例子 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/

相关文章:

java - 时间:确定系统显示12小时还是24小时

java - 如何计算当前日期和字符串文本日期之间的小时数

android - 我第二次按下录制按钮时,我的应用程序崩溃了

c# - 我自己托管的 NuGet 服务器不再正常工作

android sqlite 异常 :java. lang.IllegalArgumentException: 列 '_id' 不存在

php - preg_replace/e 修饰符被弃用,使用数组作为模式和替换

Android - 从 PDU 已弃用的 API 创建 SMS?

java - 将一些字符串日期解析为另一种格式

android - 如何在 osmdroid 中添加标记?

java - fragment 内的 getIntent()