2012-08-31 29 views
0

如何在此代碼中啓動線程?何處以及如何啓動線程活動,因爲我的應用程序在進入此代碼段時會停止。在代碼中啓動線程

public class Lesson_p extends Activity implements OnClickListener { 

MediaPlayer p, p_sound; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.lesson_p); 
    p = MediaPlayer.create(this, R.raw.p); 
    p_sound = MediaPlayer.create(this, R.raw.p_sound); 

    View p = findViewById(R.id.imageButton_p); 
    p.setOnClickListener((OnClickListener)this); 

    View p_sound = findViewById(R.id.imageButton_pp); 
    p_sound.setOnClickListener((OnClickListener)this); 

    Button back = (Button) findViewById(R.id.button_bckp); 
    back.setOnClickListener((OnClickListener)this); 

    Button next = (Button) findViewById(R.id.button_nxtp); 
    next.setOnClickListener((OnClickListener)this); 
} 

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch(v.getId()){ 
     case R.id.imageButton_p: 
      p.start(); 
      break; 

     case R.id.imageButton_pp: 
      p_sound.start(); 
      break; 

     case R.id.button_bckp: 
      Intent back = new Intent(this, Example_n.class); 
      startActivity(back); 
      break; 

     case R.id.button_nxtp: 
      Intent next = new Intent(this, Example_p.class); 
      startActivity(next); 
      break; 

     } 


} 
//@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    p.release(); 
    p_sound.release(); 
} 

} 
+0

你說你的應用程序在它到達那段代碼時停止,但你提供了3個函數。哪個功能停止? – paulrehkugler

+0

它在button_nxtp函數中停止 – user1632229

+0

這是因爲您正在開始一個新活動,以便您的音樂播放器停止,並且您的新活動稱爲Example_p開始。 – wtsang02

回答

1

退房這類

AsyncTask

這是一個有用的,如果你想要做的背景是什麼,但要記住線程不能直接在主UI線程元素進行交互。

+1

AsyncTask非常棒! – RobertMaysJr

0

你說停止在button_nxtp函數(這不是函數,它只是在交換機中的某種情況)。

看起來您正在創建並啓動Example_p活動的意圖。使用調試器步驟通過Example_p類的onCreate()onStart()方法,您應該能夠找到您的錯誤。

+0

午餐時間已過,放棄喚醒鎖!歷史記錄的活動超時。 。這是來自logcat的錯誤消息。 。 – user1632229