gpt4 book ai didi

安卓监控应用

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:49:26 26 4
gpt4 key购买 nike

我想创建一个具有实时监控功能的Android应用程序。一种监视功能是审计音频流。另一个功能是与外围传感器交互。这些监控功能可以由其他人触发。此外,为了节省功耗,音频功能将以轮询模式运行,即休眠一定时间并唤醒一定时间。

我正在考虑如何设计 Android 应用程序。

  • 是将音频功能设计为Service还是Activity?问题是如果设计成Activity,一段时间后屏幕关闭,音频功能将关闭。

  • 如何设计轮询功能?将 AlarmManager 或内部线程与 Timer 一起使用?

我的目标是尽可能节省功耗。谢谢。

最佳答案

我会推荐以下内容

a) 使用服务。 Activity 是短暂的实体(它只在屏幕上工作)

b) 制作服务前台(阅读:http://developer.android.com/reference/android/app/Service.html#startForeground(int,android.app.Notification)。这将减少系统终止您的服务的机会

c) 在服务中,启动一个线程,在线程中做你需要的一切。

d) 如果你想定期执行,只需在线程中执行 Thread.sleep() (当线程休眠时它不会消耗 CPU 周期)。

我认为 c) 和 d) 比 AlarmManager 更可取。这是文档 (http://developer.android.com/reference/android/app/AlarmManager.html) 中的一段:“注意:警报管理器适用于您希望在特定时间运行应用程序代码的情况,即使您的应用程序当前未运行。对于正常的计时操作(滴答、超时等),使用 Handler 更容易、更高效。”

既然您的应用程序正在运行,那么最好有一些永久运行的线程并在其上执行一些操作。一般来说Handler、HandlerThread、MessageQueue只是方便类,用于更复杂的消息处理和调度。看起来你的情况很简单,通常的 Thread 应该就足够了。

关于安卓监控应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11977497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com