多次运行项目时出错

时间:2016-03-25 22:08:31

标签: java android

我有一个非常好的代码。但当我运行几个时,我的应用程序崩溃了这个错误:

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 个答案:

答案 0 :(得分:0)

你的问题是你很可能试图从后台线程更新UI组件(这是一个不在主线程上运行的线程 - 或者&#34; UI线程&#34;因为你很可能会读在其他地方),为了达到这个目的,你应该通过一个&#34; Handler&#34;这是在任一活动或片段(或在Main \ UI线程上创建的其他东西)上创建的,因为处理程序连接到WHERE IT WAS CREATED它将充当&#34;桥接&#34;两个线程之间。 你得到的错误来自操作系统,那个Looper对象是负责推送&#34;推送&#34;任务到主\ ui线程任务队列。 您也可以使用asynctask,它基本上可以为您执行上述操作。