2012-02-10 48 views
-1

我正在写一个小记事本应用程序,用户可以在其中输入保存到文件系统的文本备注。文件写入的最佳做法是什么

我想知道什么是(在频繁的I/O方面)的持久性和电池寿命之间的最佳平衡

我想确保用户将体验在停电的情况下,损失最小。 这个要求表明,在每输入几个字符之后应该执行文件系统刷新(使用一些节流)

另一方面,该策略会使用太多的电池。

那么什么应该是耐用性和性能的正确结合?

+0

为什么有人在原始发帖后三年检查这个好问题,而没有解释?我想我不了解这里的比赛规则! – 2015-02-19 15:16:53

回答

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

我想你会想要做的是一样的东西添加TextWatcher到的EditText。当afterText更改被调用时,会向处理程序发送延迟消息。如果在处理该消息之前发生另一次编辑,请删除该消息。否则,在处理消息时保存内容。也许将时间延迟设置为5-10秒,你可能只是将写入次数减少一个数量级。

相关问题