2016-03-25 361 views
0

我有一個工作非常好的代碼。但是,當我運行幾個吧,我的應用程序崩潰,此錯誤:多次運行項目時出錯

03-24 14:47:34.542 3489-3546/com.example.com E/AndroidRuntime﹕ FATAL EXCEPTION: pool-4-thread-1 
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 

我的代碼:

public class Sample { 
public Sample(Context context) {//error for this line 
    mContext = context.getApplicationContext();} 

public void doSignUp(String firstName, String lastName, String userName) { 
     //some code for signup users 
} 
} 

public class Service { 
    Runnable task = new Runnable() { 

      @Override 
      public void run() { 
       Sample sample = new Sample(getApplicationContext()); 
       Sample.doSignUp(firstName,lastName,userName); 
       decreaseCounter(); 
       if(getCounter() <= 0){ 
        stopSelf(); 
       } 
      } 
     }; 
+1

請分享您的代碼 – Ghayel

+1

請發表相關的代碼。 –

+0

我發佈的代碼請注意,它不工作時,幾次運行它,然後當刪除我的項目並重新創建工作 – Tom

回答

0

你的問題是,你是probabley試圖更新從後臺線程的UI組元(即是一個不會在主線程上運行的線程 - 或者您可能會在其他地方讀取的「UI線程」),以便實現您應該傳遞在任一活動或片段上創建的「處理程序」(或在Main \ UI線程上創建的其他東西),因爲處理程序連接到WHERE IT WAS CREATED,它將充當兩個線程之間的「橋樑」。 您得到的錯誤來自操作系統,該Looper對象是負責將任務「推送」到主\ ui線程任務隊列的人。 你也可以使用asynctask,它基本上爲你做上述事情。