2013-04-05 66 views
0

我正在开发一个我想监视文件的Android应用程序。所以我在做什么我已经创建了一个服务,我正在注册一个文件观察器,它将监视文件更改。由观察员和服务的Android的电池消耗

一旦某些事件发生,将采取在SD卡中的所有文件的元数据,并通过与更换新的旧数据更新应用程序数据库。

所以我只是想知道我必须要注册观察者的服务或一个活动,以节省用户的电池,什么会是更好的选择。

回答

1

如果您只想在用户使用应用程序时进行监视,请将观察者代码放入活动中。如果要始终进行监视,请使用服务。显然,应用程序的要求决定了这里的选择。

有源服务可能消耗更多的电池,因为它可以检测更多的文件的改变和可以被频繁触发。

如果观察者可以通知哪些改变,你只能更新变化确切文件。

另一种优化方法是收集了相当数量的更新后,在批处理来运行,而不是使用数据库中的每个更新的数据库更新。

1

电池寿命是不应该的问题(你仍然可以使用的CPU独立于类的你扩展)

这听起来像一个服务,而不是一个活动,所以我会选择一个服务。

为了节约电池,您可以根据自己的目标来做一些事情。

  1. 的FileObserver应该给你正在访问/修改了文件的直接路径,所以也许你并不需要重新扫描SD卡上的所有文件?

  2. 让服务只存储到文件的路径改变了,什么事都不做更多的服务。然后,当他们启动我们的应用程序界面时,启动一个异步任务并在后台处理它们。这应该是相当快的,取决于应用程序启动时间之间已更改的文件数量。