Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
wistis
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 6
#1

Попытка принять сообщение с сервера - Android

13.06.2015, 22:56. Просмотров 262. Ответов 6
Метки нет (Все метки)

Пытаюсь сделать приложение чтобы отправлять и читать сообщения сервера, сервеная частьна пхп.
не могу понять, как сообщение пришедшее с сервера опубликовать в TEXTVIEV
Ниже код
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package ru.wistis.wistis.sms;
 
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
 
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
 
public class MainActivity extends Activity {
 
    final String LOG_TAG = "myLogs";
 
    Handler h;
    TextView tvInfo;
    Button btnStart;
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tvInfo = (TextView) findViewById(R.id.tvInfo);
        btnStart = (Button) findViewById(R.id.btnStart);
        h = new Handler() {
            public void handleMessage(android.os.Message msg) {
 
                tvInfo.setText(msg.obj);
              //  if (msg.what == 10) btnStart.setEnabled(true);
            };
        };
    }
 
    public void onclick(View v) {
        switch (v.getId()) {
            case R.id.btnStart:
                btnStart.setEnabled(false);
                Thread t = new Thread(new Runnable() {
                    public void run() {
 
                        String  rrrr=downloadFile();
 
                         h.sendMessage(Message rrrr);
                        Log.d("343", rrrr);
 
                       //   h.sendMessage(rrrr);
 
 
                    }
                });
                t.start();
                break;
            case R.id.btnTest:
                Log.d(LOG_TAG, "test");
                break;
            default:
                break;
        }
    }
 
    String downloadFile() {
      String textik = null;
        try {
            HttpClient client = new DefaultHttpClient();
            String postURL = "http://site.ru/index.php";
            HttpPost post = new HttpPost(postURL);
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("user", "kris"));
            params.add(new BasicNameValuePair("pass", "xyz"));
            UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params, HTTP.UTF_8);
            post.setEntity(ent);
            HttpResponse responsePOST = client.execute(post);
            HttpEntity resEntity = responsePOST.getEntity();
            if (resEntity != null) {
              //
                textik=EntityUtils.toString(resEntity);
 
 
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return textik;
    }
}
Добавлено через 1 минуту
Помогите, уже второй день вожусь
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
14.06.2015, 01:16     Попытка принять сообщение с сервера #2
Что-то не понятно тут написано

Java
1
h.sendMessage(Message rrrr);
wistis
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 6
14.06.2015, 09:43  [ТС]     Попытка принять сообщение с сервера #3
ну как бы в этой строчке и вопрос, как передать строку в handle, в данном случаее rrrr это строка, вот не пойму как sendMessage использовать
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
14.06.2015, 10:45     Попытка принять сообщение с сервера #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот так работает:

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
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvInfo = (TextView) findViewById(R.id.tvInfo);
        btnStart = (Button) findViewById(R.id.btnStart);
        h = new Handler() {
            public void handleMessage(android.os.Message msg) {
                String str = msg.getData().getString("myString");
                tvInfo.setText(str);
            }
        };
    }
 
    public void onclick(View v) {
        switch (v.getId()) {
            case R.id.btnStart:
                btnStart.setEnabled(false);
                Thread t = new Thread(new Runnable() {
                    public void run() {
 
                        String  rrrr=downloadFile();
                        Message m = Message.obtain();
                        Bundle b = new Bundle();
                        b.putString("myString", rrrr);
                        m.setData(b);
                        h.sendMessage(m);
 
 
                    }
                });
                t.start();
                break;
            case R.id.btnTest:
                Log.d(LOG_TAG, "test");
                break;
            default:
                break;
        }
    }
wistis
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 6
14.06.2015, 13:51  [ТС]     Попытка принять сообщение с сервера #5
Спасибо огромное, буду разбираться

Добавлено через 1 час 45 минут
Еще сразу попутно вопрос, как правильно. Хочу допустим общение с сервером вынести в отдельный класс и естественно в отдельный файл. Ну как вынести я понял, создал файл java c с именем . Там класс как из MainActiviti получить доступ к классам и методам класса. С ява особо не знаком поэтому такие вопросы, извиняюсь
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
14.06.2015, 20:36     Попытка принять сообщение с сервера #6
Вот первый урок по AsyncTask. Там 6 коротких уроков. прочитай или посмотри.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2015, 22:35     Попытка принять сообщение с сервера
Еще ссылки по теме:

Android Попытка "упаковать" веб-приложение в apk
Получение текста с сервера Android
Android Не приходит сообщение от сервера
Android Пинг TCP сервера
Android Дождаться ответа от сервера

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

Или воспользуйтесь поиском по форуму:
wistis
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 6
14.06.2015, 22:35  [ТС]     Попытка принять сообщение с сервера #7
Спасибо. Продолжаю копаться, возникла новая проблема, по реализации чата, понимаю отправлять каждые n секунд запрос на сервер по проверке новых сообщений не вариант, ляжет сервер быстро. Почитал и как бы вижу 2 варианта либо node.js или phpDaemon, правильно мыслю , куда копать лучше?
Yandex
Объявления
14.06.2015, 22:35     Попытка принять сообщение с сервера
Ответ Создать тему
Опции темы

Текущее время: 10:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru