如何处理asyncTask和pause-button

时间:2014-03-28 18:35:51

标签: android button android-asynctask android-mediaplayer

我正在使用asyncTasks来设置不同的布局和播放声音。现在我创建了一个按钮来停止声音并恢复它。 BUt现在有一个asyncTask的问题。我点击暂停按钮并暂停,但是当调用asyncTask时,它会切换到下一个布局并播放下一个声音!

这是使用asyncTasks启动其他方法的方法:

@Override
public void onClick(View v) 
{
   Crunch();
   handler =  new Handler();
   myRunnable = new Runnable() {
     public void run() {
    UnterarmLiegestütz1();
     }
   };
   handler.postDelayed(myRunnable,wdh12);       
   myRunnable2 = new Runnable() {
     public void run() {
        Liegestützen1();
     }
   };
   handler.postDelayed(myRunnable2,2* wdh12);
}

我的暂停按钮:

 public void verlaufKlick(View view) {
    if (uebung.isPlaying()) {
      uebung.pause();
    } 
    else {
      uebung.start();
    }   
 }

asncTask调用的方法:

 public void Crunch() {
     setContentView(R.layout.crunch);
     Button btn = (Button)findViewById(R.id.pause);
     btn.setVisibility(View.VISIBLE);
     uebung = MediaPlayer.create(this, R.raw.crunch12);
     uebung.start();
 }

 public void UnterarmLiegestütz1(){
     setContentView(R.layout.liegestuetz);
     uebung = MediaPlayer.create(this, R.raw.ualiegestuetz20);
     uebung.start();
     Button btn = (Button)findViewById(R.id.pause);
     btn.setVisibility(View.VISIBLE);       
 }

Liegestützen1

 public void Liegestützen1() {
     setContentView(R.layout.liegestuetzen);
     uebung = MediaPlayer.create(this, R.raw.frauenliege);
        uebung.start();
        Button btn = (Button)findViewById(R.id.pause);
        btn.setVisibility(View.VISIBLE);

}

1 个答案:

答案 0 :(得分:0)

asynctask不会调用Crunch,它直接位于onClick事件下。你应该检查android的asynctask文档

http://developer.android.com/reference/android/os/AsyncTask.html