亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法在未調用Looper.prepare()的線程內創建處理程序

無法在未調用Looper.prepare()的線程內創建處理程序

鴻蒙傳說 2019-10-17 10:36:27
我有一個活動,并在那里上了一堂課。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();

    }


查看完整回答
反對 回復 2019-10-17
  • 3 回答
  • 0 關注
  • 500 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號