好吧所以我非常新的Android开发和相当新的Java和我不完全理解线程和内部类等。 我有我的主要活动(MyActivity)和我所有的ui内容。 我有一个内部类(MyTask)使用一个运行的线程扩展AsyncTask来改变ui
public final class MyActivity extends Activity{
blah..
class MyTask extends AsyncTask<Integer, Integer, Void>{
@Override
protected Void doInBackground(Integer... params) {
t = new Thread(){
@Override
public void run() {
while(true) {
//do ui change stuff here
这很好。
我想在MyTask中由事件触发的流模式下使用AudioTrack播放声音。 但这会干扰ui的东西。 什么是处理声音播放代码的最佳方式,所以它不会减慢ui的速度?
谢谢
答案 0 :(得分:0)
我最初的建议是使用服务,但是在研究它看起来似乎不是正确的方向。 来自:http://developer.android.com/reference/android/app/Service.html
请注意,服务与其他应用程序对象一样,在main中运行 他们的托管过程的线程。这意味着,如果您的服务是 要做任何CPU密集型(如MP3播放)或阻塞(如此 作为网络)操作,它应该在其中产生自己的线程 做那个工作。有关这方面的更多信息,请参阅流程和 线程。 IntentService类作为标准提供 具有自己的调度的线程的Service的实现 它的工作要做。 我可能会以“意向服务”的方式使用服务,但这似乎不是一种常用的方式。
根据上面链接中的threads链接,我建议一个工作线程,你可以在这里找到它: http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html
只要您不打算从中更新UI元素,如果是这样,工作线程标题下会有其他建议/链接描述其他注意事项。
祝你好运,我希望这会有所帮助