У меня есть несколько вопросов о моих ошибках времени отладки - PullRequest
0 голосов
/ 26 октября 2010

первый:

10-26 17:43:07.454: WARN/dalvikvm(6371): threadid=3: unable to interrupt threadid=19
10-26 17:43:07.487: DEBUG/dalvikvm(6371): GC freed 279 objects / 259776 bytes in 208ms
10-26 17:43:07.487: WARN/WindowManager(2215): Attempted to add application window with unknown token HistoryRecord{46366130 spexco.hus.cepvizyon/.ViewCam}.  Aborting.

Я не вижу других ошибок сейчас, но через секунду я хочу узнать, как остановить Handler. Мой код обработчика: я вызываю с помощью "handler.sendMessage (new Message ());"

private Handler handler = new Handler() {
    public void handleMessage(Message msg) {

        try {

            bmp = CameraManagerScreen.ActiveCam.getCurrentImage();
            bmpl = CameraManagerScreen.ActiveCam.getCurrentLenght();
            if (bmpl != bmpltmp) {
                if (speed.getVisibility() == 4) {
                    speed.setVisibility(0);
                    counter++;
                } else {
                    speed.setVisibility(4);
                    counter++;
                }
            }
            bmpltmp = bmpl;

            if (bmp != null) {
                if (CameraManagerScreen.ActiveCam.isConnected())
                    m_ProgressDialog.dismiss();
                imageView.setImageBitmap(bmp);

            }
            if (isDemo && counter == 10) {
                counter++;
                CameraManagerScreen.ActiveCam.cancel();
                CameraManagerScreen.ActiveCam.setConnected(false);

                m2_ProgressDialog.show();

            }

        } catch (Exception e) {

        } finally {
            if (isDemo && counter == 10)
                sleep(999999999);
            sleep(50);
        }

    };

    public void sleep(long delay) {
        this.removeMessages(0);

        sendMessageDelayed(obtainMessage(0), delay);

    };
};

1 Ответ

0 голосов
/ 27 октября 2010

Проблема «невозможно прервать» возникает, когда вы пытаетесь прервать ожидающий поток, но поток находится в состоянии, в котором он кажется «застрявшим», поэтому виртуальная машина сдается и сбрасывает прерывание.

Начиная с 2.2 ("froyo") механизм прерывания потока был изменен, и этого больше не происходит.

Надежно ли это происходит?

...