android - 在 savedInstanceState 中存储日期的最佳方式是什么?

标签 android date time storage store

我正在使用 onSaveInstanceState 方法来存储和检索 fragment 内的局部变量。 我的一个 fragment 中有以下代码(简化):

private final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy - HH:mm");
private Date myDate;

public Date getDate() { return myDate; }

public void setDate(Date date) { this.myDate = date; }

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.main, container, false);

    TextView tvDate = (TextView) rootView.findViewById(R.id.textview_date);

    if (savedInstanceState != null) {
        try {
            myDate = dateFormat.parse(savedInstance.State.getString("DATE"));
        catch (ParseException e) {
        }
    }

    //myDate is being set by a different fragment using the setDate method

    if (tvDate != null)
        tvDate.setText(dateFormat.format(myDate));

    return rootView;
}

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putString("DATE", dateFormat.format(myDate));
}

这样我就可以在我的 View 被销毁和重新创建时存储和检索日期值,例如通过旋转屏幕,这是主要问题。 这行得通,但我可以看出这效率不高。如果我像这样存储更多变量, View 创建将花费更长的时间(加载 10 个包含字符串和 bool 值的变量需要几秒钟)。

我想知道是否有更好的方法来做到这一点。欢迎提出任何建议。

最佳答案

DateSerializable。停止将其与字符串相互转换。只需将它直接放在 Bundle 中,使用 putSerializable() , 通过 getSerializable() 检索它.

如果这不能解决您潜在的性能问题,请使用开发工具(例如 IDE 中的方法跟踪)来确定您将时间花在哪里。

关于android - 在 savedInstanceState 中存储日期的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38974480/

相关文章:

android - 在 android 应用程序上进行 OTP 验证后,fabric digits 返回一个空的 phoneNumber 对象

android - 从通知发送的 PendingIntent 中选择 TabActivity 中的特定选项卡

android - Recyclerview插入数据时自动向上滚动

javascript - Javascript 如何检查该月的最后一天是否是星期五

time - GPS时间、时间换算

android - 如何在 Eclipse 的文件资源管理器中为连接 USB 的手机显示文件?

javascript - 将 AngularJS 中的时间戳格式化为自定义要求

sql - 查询结果中的 google-bigquery 格式日期为 mm/dd/yyyy

architecture - 设计辩论 : what are good ways to store and manipulate versioned objects?

ruby-on-rails - 为什么 Rails Weekday 索引与 Ruby 的不同?