Вопрос

Мое приложение запускает нить для запроса в Интернете для некоторых данных. Я хочу отобразить тост, когда ничего не найден, но мое приложение всегда вылетает.

Я пытался использовать контекст приложения из строки, как так:

Toast.makeText(getApplicationContext(), "testttt", Toast.LENGTH_LONG).show();

Я также попробовал создать Runnable с тостом вызова и вызывая RunoNuithRead (Runnable) из потока (тост вызова в этом Runnable использует активность в качестве первого параметра).

У кого-нибудь есть какие-то идеи о том, как это достичь?

Это было полезно?

Решение

Попробуйте опубликовать внутрь к объекту обработчика.

final Handler mHandler = new Handler();
final Runnable mUpdateResults = new Runnable() {
    public void run() {
        Toast(this, message, duration).show();
    }

new Thread() {
    public void run() {
        mHandler.post(mUpdateResults);
    }
}.start();

Другие советы

Toast.makeText().show() Определенно нужно управлять на бите UI.

Вы, вероятно, должны использовать асинктюзную асинктюду, такие как Octavian Damiean, но вот какой-то код, использующий RONONUITHREAD, если вы устанавливаете на использование этого:

    public void showToastFromBackground(final String message) {
    runOnUiThread(new Runnable() {

        @Override
        public void run() {
            Toast.makeText(this, message, Toast.LENGTH_LONG).show();
        }
    });
}

Попробуйте внедрить класс расширения «обработчика» в классе активности и отправить ему сообщение из другого потока. Рекомендуется подробнее:

http://www.anddev.org/the_pizza_timer_-_threading-drawing_on_canvas-t126.html.

И, пожалуйста, когда задавать такой вопрос, включите след стека, который вы получаете.

Если вы управляете обработчиком из класса активности, вы можете установить контекст, просто ссылаясь на. Это вашей деятельности, как так:

final Runnable showToastMessage = new Runnable() {
    public void run() {
        Toast.makeText(YourActivity.this, "Message", Toast.LENGTH_SHORT).show();
    }
};
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top