线程可以独立运行吗恢复运行

发布时间: 发布网站:编程之家

收集整理的这篇文章主要介绍了小编觉得挺不错的,现在分享给大家也给大家做个参考。

我正在构建一个从Web服务器流式传输音乐的应鼡程序.该应用程序具有使用MediaPlayer播放的前台服务.

我的代码是基于这个例子:

在该示例中,除了prepareAsync()调用之外,没有任何内容是线程可以独立运行吗.令我困惑的是,当我阅读关于Service类的时候,我发现这个信息:

“注意:一个服务在其主机进程的主线程可以独立运行吗中运行 – 该服务不会创建自己嘚线程可以独立运行吗,并且不会在单独的进程中运行(除非另有指定),这意味着如果您的服务将执行任何CPU密集型工作或阻塞操作(如MP3播放或网络連接)时,您应该在服务中创建一个新的线程可以独立运行吗来完成此工作,通过使用单独的线程可以独立运行吗可以降低应用程序无响应(ANR)错误嘚风险,应用程序的主线程可以独立运行吗可以保持专用于与您的活动的用户交互.

我问的原因是应用程序有时候(通常当断开连接时)在流式传輸音频时冻结UI.我完全明白,由于活动和服务运行在同一个线程可以独立运行吗上,因此服务使CPU变得更加强大,UI会冻结.但是,我应该期望MediaPlayer是如此激烈那就是应该在单独的线程可以独立运行吗上运行吗?

不幸的是,调用prepareAsync()并不足以避免ANR提示和您的应用程序挂起几秒钟,尤其是从网络播放文件時.最好的办法是将MediaPlayer的实例放在自己的线程可以独立运行吗中,或者至少在Handler中执行密集的调用(如mediaplayer.start()).我一直在使用MediaPlayer一年多,根据具体情况,我可以告诉伱,在各种电话之后,它肯定会挂起来.

以上是为你收集整理的全部内容希望文章能够帮你解决所遇到的程序开发问题。

如果觉得网站内容还鈈错欢迎将推荐给程序员好友。

本图文内容来源于网友网络收集整理提供作为学习参考使用,版权属于原作者
如您喜欢交流学习经驗,
}

Qt的signals/slots是可以用在...熟悉多线程可以独竝运行吗的读者应该都感受到这里会有一个微妙的问题如果signals/slots的函数参数是一个自己定义的类型。比如自己定义了一个Student信号函数为sendStudent(const

}

我要回帖

更多关于 线程可以独立运行吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信