Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2019, 13:39   #1
VectorASD
Новичок
Джуниор
 
Регистрация: 31.05.2019
Сообщений: 2
Вопрос Не могу запустить в потоке Toast.makeText

В основном потоке Тосты вылетаю, а в дополнительном (в методе run) уже фатальная ошибка :/ КАК ИСПРАВИТЬ???
Есть основа:
Код:
package com.pythonboting;

import android.app.Activity;
import android.os.Bundle;
import com.pythonboting.R;
import com.asd.POST;

public class Main extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    start();
  }
  public void start() {
    new POST("DOG!", this.getApplicationContext()).start();
  }
}
И сам класс для потока:
Код:
package com.asd;

import java.net.URL;
import java.net.HttpURLConnection;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.ByteArrayOutputStream;
import android.widget.Toast;
import android.content.Context;

public class POST extends Thread {
  private String params;
  private Context app;
  private void toast(String Text) {
    Toast.makeText(app, "Хм...! "+Text, Toast.LENGTH_SHORT).show();
  }
  public POST(String params, Context app) {
    this.params = params;
    this.app = app;
    toast("До потока"); //Тут работает
  }
  public void run() {
    //Даже тут toast("Киса") уже приводит к фатальной
    ...Какой-то код (у меня он совершает POST запрос на мой локальный хост), а hello world тут или мой POST велосипед, не меняет в общем итоги :S
    toast("В потоке"); //А тут уже нет :mad:
  }
}

Последний раз редактировалось VectorASD; 31.05.2019 в 16:53.
VectorASD вне форума Ответить с цитированием
Старый 02.06.2019, 18:40   #2
VectorASD
Новичок
Джуниор
 
Регистрация: 31.05.2019
Сообщений: 2
По умолчанию

Эх вы 4pda лучше, сразу помогли, дошёл до этого:
Код:
  final Handler h = new Handler();
  private void toast(final String Text) {
    h.post(new Runnable() {
       @Override
       public void run() {
           Toast.makeText(app, Text, Toast.LENGTH_SHORT).show();
       }
    });
  }
VectorASD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу запустить код lypyotr Общие вопросы Delphi 3 03.09.2013 17:34
Messagedlg в отдельном потоке как запустить со всеми параметрами? darkleo Общие вопросы Delphi 1 13.03.2013 06:51
Вывод в Toast содержания 2х файлов Rammsteinik Общие вопросы по Java, Java SE, Kotlin 0 24.02.2013 10:39
Не могу запустить... Тигран001 Софт 0 06.12.2010 22:01
Не могу запустить volna Паскаль, Turbo Pascal, PascalABC.NET 6 01.06.2009 20:09