【问题标题】:When to use Android AlarmManager?何时使用 Android AlarmManager?
【发布时间】:2013-01-20 10:25:47
【问题描述】:

我还没有时间深入研究 AlarmManager,以及它在低级别上的真正工作原理。我担心这个 API 的效率、费用和任何替代方案。任何人都可以对此事有所了解。具体来说,将 AlarmManager 设置为每隔几秒(至少 2-3 秒)运行一次 IntentService 是否有效?还是使用服务更好,并创建一个具有循环并每隔几秒暂停的不同线程?或者有没有其他的替代方案?

如果有人能分享一些关于使用 AlarmManager 或 Service 或任何其他方法的电源和内存消耗比较的见解,那就太好了。

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

【问题讨论】:

    标签: java android android-alarms


    【解决方案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();
    

    【讨论】:

    • 感谢您的建议!生病替换我的代码的侦听器部分。这确实很有帮助,你有什么知识/想法什么时候使用,什么时候不使用 AlarmManager?每隔几秒运行一次 AM 可以吗?
    • @ibaguio:我没有使用 AlarmManager,所以我无法自信地回答你,但documentation 建议你应该使用 Handler。
    猜你喜欢
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多