2013-01-20 29 views
1

我没有时间深入了解AlarmManager,以及它如何在低级别上真正起作用。我很关心这个API的效率,费用和其他选择。任何人都可以在这件事上找到一些启示。特别是设置AlarmManager运行IntentService每秒几秒(至少2-3秒)是否有效?或者是使用服务更好,并创建一个不同的线程,并有一个循环,并每隔几秒暂停一次?或者还有其他的选择吗?何时使用Android AlarmManager?

如果任何人都可以分享一些关于使用AlarmManager或Service或任何其他方法的Power和Memory消耗比较的见解,这也将是非常好的。

我使用AlarmManager每隔几秒钟调用IntentService来运行一段代码,检查目标文件夹中是否有新文件。

回答

1

您不应该使用AlarmManager甚至IntentService来检查目标文件夹中是否有新文件。 Android有FileObserver类来检查这个没有繁忙的循环。

FileObserver observer = new FileObserver("path/to/target", FileObserver.CREATE) { 
    @Override 
    public void onEvent(int event, String filename) { 
     if (event == CREATE) { 
      Log.i("Info", filename + " has been added to folder"); 
     } 
    } 
}; 
observer.startWatching(); 
+0

感谢您的意见!我替换我的代码的监听器部分。这确实非常有用,你有什么知识/想法何时使用以及何时不使用AlarmManager?每隔几秒运行一次AM可以吗? – ibaguio

+1

@ibaguio:我没有使用AlarmManager,所以我无法自信地回答你,但[文档](http://developer.android.com/reference/android/app/AlarmManager.html)表明你应该使用Handler来代替。 – kennytm