java.lang.RuntimeException: не может создать обработчик в потоке - PullRequest
0 голосов
/ 17 февраля 2012

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

На самом деле мой случай таков: Я пытаюсь использовать пример кода «BluetoothChat», который я взял у разработчика Android. Моя миссия состоит в том, чтобы приложение работало и отправляло сообщения автоматически после подключения удаленного устройства ... Я думаю, вы все знаете, что я пытаюсь сказать ... У меня есть строковые сообщения, которые я хочу, чтобы приложение отправляло каждую секунду для удаленного устройства:

String helloString[] = {"hello person"," hi there", "hola hola", "yau yau..."};

Здесь я попытался изменить некоторую часть кода, где, я думаю, приложение выполнит то, что я хочу, с ошибкой ...: (

private void setupChat() 
    {
    Log.d(TAG, "setupChat()");

    Thread output = new Thread()
    {
        public void run()
    {
            while (true)
            {
                for(int i = 0; i < 4; i++)
                {

                    //Sending helloStrings for the device
                    message = helloString[i];       
                    sendMessage(message);

                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {

                    }
                }
            }
    }
    };
    output.start();

    // Initialize the BluetoothChatService to perform bluetooth connections
    mChatService = new BluetoothChatService(this, mHandler);


}

/**
     * Sends a message.
     * @param message  A string of text to send.
     */   
    private void sendMessage(String message) 
    {
        // TODO Auto-generated method stub
        // Check that we're actually connected before trying anything
        if (mChatService.getState() != BluetoothChatService.STATE_CONNECTED) 
        {
            Toast.makeText(this, R.string.not_connected, Toast.LENGTH_SHORT).show();           
            return;
        }

        byte[] send = message.getBytes();
        mChatService.write(send);

    }

1 Ответ

0 голосов
/ 17 февраля 2012

Вам также нужно объявить @Override для метода run () .

См. Принятый ответ на этот вопрос Как запустить поток Runnable в Android?.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...