如果在视图模型中执行简单的操作,我们是否需要实时数据



所以我现在正在尝试编写一个简单的应用程序,只包含视图模型和视图。其中有一个简单的日期计算。我应该使用实时数据吗?

数据计算由视图中的方法触发,我计算最终日期并将其设置为文本视图。没有复杂的操作。我应该使用 livedata 并从 MainActivity 中收听它,还是像我现在所做的那样立即从 viewmodel 中的方法返回。哪种方法更好?

主要活动.java

@Override
public void onMediaFocused(@NonNull MediaTypeUtil.MediaType mediaType, Uri uri) {
dateTextView.setText(mMediaPlayerControlViewModel.getCreationDate(uri));
}
}

视图持有人.java

private static final String PLAYER_DATE_FORMAT = "MMMM dd hh:mm a";
private static final String EMPTY_STRING = "";
public String getCreationDate(Uri uri) {
try {
File file = new File(uri.getPath());
DateFormat df = new SimpleDateFormat(PLAYER_DATE_FORMAT);
BasicFileAttributes basicFileAttributes =
Files.readAttributes(file.toPath(), BasicFileAttributes.class);
return df.format(basicFileAttributes.creationTime().toMillis());
} catch (IOException e) {
e.printStackTrace();
return EMPTY_STRING;
}
}

您希望使用LiveData有两个主要原因,因此请问自己:

  1. 我的数据是否需要生命周期感知和固有保留?
  2. 我是否要观察数据的变化并相应地更新内容?

如果这些东西不是您的用例不可或缺的一部分,那么我不会费心使用 LiveData 来包装非"实时"数据。

相关内容

  • 没有找到相关文章

最新更新