假設您有這個班級管理計時器。這只是一個測試。計時器上的Looper.prepare錯誤
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的完整類代碼,以及你從哪裏調用cuetimer.start()的類嗎? –
'main = new MainActivity();'你不能自己創建活動的實例。把它留給系統。 – njzk2
我評論main = new MainActivity();因爲它沒有用在這個方法 –