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

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

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

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

1 Ответ

4 голосов
/ 20 декабря 2011

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

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