2012-08-31 34 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