java – UI线程或背景中的Android音乐播放器
我正在尝试创建简单的
Android应用程序来播放SD卡中的音频文件.
理解服务时遇到一些问题. 我将具体,这是我的问题. >默认情况下,服务在UI线程上运行,不是吗?只有当它在单独的进程中运行时,它才有另一个线程,以及上下文,因为它是系统中的另一个进程(虚拟机实例的分支) 请解释这个主题. 解决方法
Android MediaPlayer背后的一个棘手问题是,有许多实现具有略微不同的行为.尽管如此,界面很常见,所以我们可以谈论这个问题.除了prepare之外,可以从UI线程调用所有MediaPlayer生命周期方法.为了简化操作,有一个
prepareAsync 方法,可以从UI线程调用.
在内部,MediaPlayer应该以一种在任何情况下在调用线程上不发生解码和回放的方式与音频系统交互. 可以在另一个线程上创建MediaPlayer.但是,如the documentation所述,该线程必须有自己的Looper(UI线程具有).因此,不应在异步任务中创建MediaPlayer. 顺便说一下,我在主线程上调用start方法时注意到了偶尔的ANR(这会把我带到你的帖子中).然而,这些是非常罕见的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |