我有一個活動,并在那里上了一堂課。text=new Dynamictext(...);text.setText("txt");在我的DynamicText Java中,我有以下代碼:public void setText(String text) { this.text=text; new asyncCreateText().execute(); //this.createText(text);}//private Handler handler = new Handler();private class asyncCreateText extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... unused) { return null; } @Override protected void onPostExecute(Void unused) { }}我得到:ERROR / AndroidRuntime(5176):原因:java.lang.RuntimeException:無法在未調用Looper.prepare()的線程內創建處理程序如何處理此錯誤?ERROR/AndroidRuntime(5370): java.lang.ExceptionInInitializerErrorERROR/AndroidRuntime(5370): at com.l.start.DynamicText.setText(DynamicText.java:125)ERROR/AndroidRuntime(5370): at com.l.start.OpenGLRenderer.initfonts(OpenGLRenderer.java:168)ERROR/AndroidRuntime(5370): at com.l.start.OpenGLRenderer.init(OpenGLRenderer.java:119)ERROR/AndroidRuntime(5370): at com.l.start.OpenGLRenderer.onSurfaceChanged(OpenGLRenderer.java:90)ERROR/AndroidRuntime(5370): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1120)ERROR/AndroidRuntime(5370): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:975)ERROR/AndroidRuntime(5370): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()ERROR/AndroidRuntime(5370): at android.os.Handler.<init>(Handler.java:121)ERROR/AndroidRuntime(5370): at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)ERROR/AndroidRuntime(5370): at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)ERROR/AndroidRuntime(5370): at android.os.AsyncTask.<clinit>(AsyncTask.java:152)ERROR/AndroidRuntime(5370): ... 6 more
3 回答
拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
您可以通過這種方式在后臺線程中創建處理程序
private void createHandler() {
Thread thread = new Thread() {
public void run() {
Looper.prepare();
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Do Work
handler.removeCallbacks(this);
Looper.myLooper().quit();
}
}, 2000);
Looper.loop();
}
};
thread.start();
}
- 3 回答
- 0 關注
- 500 瀏覽
添加回答
舉報
0/150
提交
取消
