文件编写的最佳实践是什么?

时间:2012-02-10 04:05:48

标签: android

我正在编写一个小笔记本应用程序,用户可以在其中输入文本备注,这些备注将保存到文件系统中。

我想知道持久性和电池寿命之间的平衡是什么(就频繁的I / O而言)

我希望确保用户在停电时体验到最小的损失。 该要求表明,在输入每个字符后,应该执行对文件系统的刷新(使用一些限制)

另一方面,这种策略会耗费太多电池。

那么耐用性和性能的合适应该是什么?

2 个答案:

答案 0 :(得分:2)

不频繁的文件I / O不会对电池寿命造成太大影响。即使每10秒一次,如果你正确地做到这一点,电池消耗也不会那么大(即当你的应用程序离开屏幕时禁用计时器[或其他],检查你真的需要在计时器触发时保存,等等)。

话虽如此,每次击键后的文件I / O都是过多的。以下是一些想法:

  • 定期保存(就像任何其他应用程序一样),例如每5分钟一次[如果已经进行了更改]。
  • 手动保存按钮,如果用户想要更频繁地保存,将其放在角落里或者某些东西让它不在路上但仍然可见
  • 为电池事件注册广播接收器,当电池电量不足时,立即保存。随着电池电量的降低,也许可以节省电流。
    • 50% - 立即保存
    • 25% - 保存,计时器每10分钟点火一次
    • 20% - 保存,计时器每5分钟点火一次
    • 15% - 保存,警告(不更改计时器)
    • 10% - 保存,警告(不更改计时器)
    • 5% - 保存,计时器每分钟触发
    • 1% - 保存,关闭应用程序(或者每隔10秒钟将定时器提升到完全爆炸状态。)

这是一个非常简单的电池更换意图过滤器的链接:

http://www.tutorialforandroid.com/2009/01/getting-battery-information-on-android.html

答案 1 :(得分:1)

我认为您想要做的就是在EditText中添加TextWatcher。当postText更改被调用后发布一个延迟到处理程序的消息。如果在处理该消息之前发生了其他编辑,请删除该消息。否则,在处理消息时保存内容。也许将时间延迟设置为5-10秒,您可能只是将写入次数减少了一个数量级。