gpt4 book ai didi

java - 使两个线程继续在后台运行

转载 作者:行者123 更新时间:2023-12-01 11:28:51 28 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序,其中涉及一个 AudioTrack 和一个 AudioRecord。它们在两个不同的线程中运行,即使应用程序在后台运行,它们都需要继续运行,并且在内存/CPU 不足时不会被杀死。我搜索了这个,我知道我可能可以使用 AsyncTask (就像在音乐流应用程序中一样)。但是,我不确定如何执行此操作,因为首先创建运行 AudioTrack 的线程(一旦按下主 Activity 上的某个按钮),然后该线程将创建另一个运行 AudioRecord 的线程(通过创建 Runnable) .

最佳答案

I searched about this and I know I could probably use AsyncTask (just like in music streaming app)

没有。你的问题不是线程,而是进程。

both of them need to continue to run and not being killed when low memory/CPU even if the app is running in the background

严格来说,这是不可能的。最接近的方法是使用 Service,该服务又使用 startForeground() 来指示它具有前台优先级。这将最大限度地降低 Android 由于内存不足而终止进程的可能性,但不会消除这种情况。

另请注意,您需要打开 CPU 才能执行音频任务。反过来,这将需要一个WakeLock。这将严重损害用户的电池,因此您应该建议用户将设备放在充电器上。这在未来尤其重要,即将推出的“M”Android 版本的“打瞌睡模式”将阻止您使用 WakeLocks(如果设备处于空闲状态、不动且未充电)。

关于java - 使两个线程继续在后台运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30602517/

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