2016-03-25 5 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 пытается обновить componenet UI от фонового потока (Это is-thread, который не запускается в основном потоке, или «поток пользовательского интерфейса», как вы, вероятно, читаете в других местах), чтобы достичь этого, вы должны передать «обработчик», который был создан как для активности, так и для фрагмента (или что-то еще, что было создано в потоке Main \ UI), поскольку обработчик подключен к ГДЕ, КОТОРЫЙ СОЗДАЛ, он будет действовать как «мост» между двумя потоками. Ошибка, которую вы получаете, - это ОС, этот объект Looper является ответственным за «толкание» задач в главную очередь задач \ ui. Вы также можете использовать asynctask, который по существу сделает выше для вас.

Смежные вопросы