Неустранимое исключение для Android: невозможно создать обработчик внутри потока, который не вызвал Looper.prepare ()

1

Я прочитал подобные вопросы по этой проблеме и попытался найти решение, но я не понял, в чем причина в моем случае. Ниже приведен мой код программы:

public class ReportSystem extends Activity implements SensorEventListener , Runnable{ 

    ReportLocation reportObj = new ReportLocation(this); //my other class
    Thread thread_send = new Thread(this);

    Handler handler = new Handler() {
        public void handleMessage(Message message) {    
            msg.setText("---"));
        }
    };

    public void onCreate(Bundle savedInstanceState){ 
    //something...
    }

    public void onSensorChanged(SensorEvent event){ 

        if(event.values[0] > 10)
            thread_send.start(); // thread is started..
    }

    public void run(){

        reportObj.send(); //connect with server and send data by the help of RepotLocation class' send function
        handler.sendEmptyMessage(0);
    }
}//end class

Что мне делать, чтобы решить эту проблему?

Теги:
multithreading
handler

1 ответ

4
Лучший ответ

Попробуй это:

public void run(){
    Looper.prepare();
    reportObj.send();
    handler.sendEmptyMessage(0);
    Looper.loop();
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню