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();
}

}
4

2 に答える 2

1

このクラスをチェック

非同期タスク

これは、バックグラウンドで何かを実行したい場合に便利なクラスですが、スレッドはメイン UI スレッドの要素と直接やり取りできないことに注意してください。

于 2012-08-31T01:02:47.083 に答える
0

関数で停止すると言いましたbutton_nxtp(これは関数ではなく、スイッチの特定のケースです)。

Example_pアクティビティのインテントを作成して開始しているようです。onCreate()デバッガーを使用してクラスのメソッドとonStart()メソッドをステップ実行するとExample_p、エラーを見つけることができるはずです。

于 2012-08-31T01:19:15.920 に答える