このクラスでタイマーを管理しているとします。単なるテストです。Looper.Perare error on Timer
package it.rockopera.scsremote;
import android.content.Context;
import java.util.Timer;
import java.util.TimerTask;
public class CueTimer extends Thread{
private Context context;
private MainActivity main = new MainActivity();
private Timer timer;
int elapsed = 0 ;
public CueTimer(Context c){
context= c;
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
elapsed+=1000;
System.out.println("elapsed: " + String.valueOf(elapsed));
}
},0,1000); //Update text every second
}
}
私は、このように別のクラスからこのメソッドを呼び出すしたいと思います:
CueTimer cuetimer = new CueTimer(context);
cuetimer.start()
はここでエラーです:
Process: it.rockopera.scsremote, PID: 7562 java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() at android.os.Handler.(Handler.java:200) at android.os.Handler.(Handler.java:114) at android.app.Activity.(Activity.java:789) at it.rockopera.scsremote.MainActivity.(MainActivity.java:47) at it.rockopera.scsremote.CueTimer.(CueTimer.java:32) at it.rockopera.scsremote.Client$Read_SCS_MSGs.run(Client.java:477) at java.lang.Thread.run(Thread.java:761)
「私はこのエラーを探すためにしようとしたが、私はすることができます何か類似のものを見つける。 ありがとうございます!
あなたはcuetimer.start()を呼び出しているクラスから、CueTimerの完全なクラスコードとクラスを与えることができますか? –
'main = new MainActivity();'あなたはあなた自身で活動のインスタンスを作成することはできません。それをシステムに任せてください。 – njzk2
私はmain = new MainActivity()にコメントしました。このメソッドでは使用されていないため、 –