Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
1

Как обновить TextView с AsyncTask?

08.05.2013, 21:01. Просмотров 1160. Ответов 6
Метки нет (Все метки)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
private class DownloadFilesTask extends AsyncTask<String, Integer, Long> {
    protected Long doInBackground(String... urls) {
        try{
            Listen();
        }
        catch (Exception x)
        {
            textIn.setText("shit! " + x.toString());
        }
        long i = 10;
        return i;
    }
}
public void Listen(){
    int count = 0;
    TextView msg = MyActivity.msg;
    ServerSocket server;
    Socket client;
    try {
        server = new ServerSocket(9797);
        Log.d("My log", "server started");
        Log.d("My log", "waiting for connnections");
        while (started) {
            try{
                msg.setText("waiting for connection"); <=== крешится здесь?
                client = server.accept();
                count++;
                Log.d("My Log", "Connected");
                Log.d("My Log", "aha" + count);
                int i = 0;
                String data = null;
                byte[] bytes = new byte[1024];
                InputStream is = client.getInputStream();
                OutputStream os = client.getOutputStream();
                while (is.available() == 0) {
                    try{
                        Thread.sleep(50);
                    }catch (Exception cc){}
                }
                is.read(bytes, 0, is.available());
                os.write("hala".getBytes());
                client.close();
            }catch (Exception cc)
            {
                cc.toString();
            }
        }
 
    } catch (Exception el) {
        el.printStackTrace();
    }
}
Помогите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 21:01
Ответы с готовыми решениями:

Как обновить textview в фрагменте после обновления preference
Вечер добрый. В общем потратил весь день что бы разобраться с этим вопросом, но...

Текст из TextView перенести в другой TextView по нажатию Button
Люди, помогите плиз. Недавно начал ковырять программирование под Android. Хотел...

Как остановить AsyncTask?
Не ругайтесь на код:) с Asynctask работаю только несколько дней class MyTask...

AsyncTask как дождаться окончания
Всем привет. Ситуация следующая. Есть активити &quot;MyTravelList&quot; со списком,...

Как приостановить doInBackground() из AsyncTask
Здравствуйте. Есть экземпляр AsyncTask и активити с WebView. AsyncTasd...

6
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
08.05.2013, 21:11 2
MegaSinner, внутри doInBackground не хорошо обращаться к UI

http://developer.android.com/trainin...onnecting.html
http://developer.android.com/reference/android/os/AsyncTask.html

если надо на Русском то http://startandroid.ru
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
08.05.2013, 22:00 3
в onProgressUpdate и в onPostExecute
0
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
09.05.2013, 14:12  [ТС] 4
Цитата Сообщение от V0v1k Посмотреть сообщение
в onProgressUpdate и в onPostExecute
пробовал, но эти методы не вызываются почему-то

Цитата Сообщение от c4sp3r Посмотреть сообщение
внутри doInBackground не хорошо обращаться к UI
возможно, но по другому низя работать с сетью..
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 14:23 5
Цитата Сообщение от MegaSinner Посмотреть сообщение
пробовал, но эти методы не вызываются почему-то
у всех вызываются а у тебя нет?
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
09.05.2013, 19:50 6
Цитата Сообщение от MegaSinner Посмотреть сообщение
возможно, но по другому низя работать с сетью..
Я про сеть нечего и не писал.
0
jumb0jet
16 / 16 / 0
Регистрация: 08.05.2013
Сообщений: 40
10.05.2013, 15:19 7
Рекомендую читать, документацию Android перед тем как задавать вопросы. Ведь там черным по белому написано, что нельзя обращаться к UI (пользовательскому интерфейсу) в методе AsyncTask.doInBackground(Object[]).
Если же очень сильно хочется, то в конструкторе вашего таска передайте ссылку на activity, в которой вы собираетесь обновлять интерфейс, и в методе AsyncTask.doInBackground(Object[]) вызовите метод Activity.runOnUiThread(Runnable action).
Насколько я понял у тебя переменная msg статическая - это не есть хорошо.

Было бы замечательно увидеть пример целиком. Ну и логи при падении приложения выложить тоже не помешало бы.
0
10.05.2013, 15:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2013, 15:19

TextView txt = new TextView(this); - ошибка
Возникла проблема с динамическим создание TextView в цыкле, хотя в другом месте...

Как из AsyncTask Добавить элементы в ListView
В общем сабж. Используя адаптер как сделать?

Как получить значение String из UI потока в потоке AsyncTask?
Есть 4 шт. EditText. Нужно получить их значения в потоке AsyncTask. Вот весь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru