我正在使用一个服务为整个应用程序运行背景音乐。该服务启动一个异步任务来播放音频文件。对于没有动画的活动,音乐播放得很好。但对于有动画的活动,音乐不断中断,或者可以说跑得很慢(我希望我能表达)。
我不明白问题出在哪里,因为除了那些特定屏幕中的音频外,一切都很好
这是因为我使用模拟器,在实际设备中它会工作吗?或者有没有一种方法可以在模拟器中完成。
谢谢你的回答。
在单独的线程中运行动画。这会有所帮助,但一定要使用处理程序。因为视图只能从其原始线程更改。
这样做:
final Handler myHandler = new Handler();
(new Thread(new Runnable() {
@Override
public void run() {
//do long calculations here
myHandler.post(new Runnable() {
@Override
public void run() {
//set your views here
}
}
});
}
})).start();
解决这个问题的两件事
- 使用AmimationDrawable而不是AnimationUtils类(仅在导航时闪烁音频)
- 增加avd的堆大小(甚至在这之后消除了小的闪烁)