我有一个活动,并在那里上了一堂课。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 关注
- 468 浏览
添加回答
举报
0/150
提交
取消