Доброе время суток. Хочу написать чат. Вопрос в следующем. Есть главная активность(main), где происходит соединение с сервером, обработка запросов и т.д. Как реализовать отправку сообщений:
1. Если создавать отдельную активность(chat), то не понятно как вызвать функции отправки из из главной активности?
2. Может есть другой способ?
за ранее спасибо
Передача данных
Передача данных
Конструктивная критика - критика, в которой говорится не что плохо, а что и как сделать лучше.
Re: Передача данных
Здравствуйте. Создайте отдельный класс, в котором реализуйте: соединение с сервером, получение сообщений и отправку сообщений. И обращайтесь из активности к нему. Или вопрос относиться к технологии отправки и получения данных? Тогда Вам нужно уточнить каким образом Вы реализовали соединение с сервером? (Socket, UDP, через методы HTTP: POST-запрос, GET-запрос)kr0n4ik писал(а):Доброе время суток. Хочу написать чат. Вопрос в следующем. Есть главная активность(main), где происходит соединение с сервером, обработка запросов и т.д. Как реализовать отправку сообщений:
1. Если создавать отдельную активность(chat), то не понятно как вызвать функции отправки из из главной активности?
2. Может есть другой способ?
за ранее спасибо
Re: Передача данных
Спасибо большое, я сделал на service по подсказке gerc'а
Если есть конструктивная критика по поводу моего метода, будет очень полезно послушать
Код: Выделить всё
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import com.codebutler.android_websockets.WebSocketClient;
import org.apache.http.message.BasicNameValuePair;
import java.net.URI;
import java.util.List;
public class WebSocketService extends Service {
Intent BroadCastIntent;
private WebSocketClient client = null;
List<BasicNameValuePair> extraHeaders;
public WebSocketService() {
Log.d("chat", "MyServiceCreate");
BroadCastIntent = new Intent("c34852urt7234056u0u234895y7893");
client = new WebSocketClient(URI.create("ws://192.168.0.102:8080"), new WebSocketClient.Listener() {
@Override
public void onConnect() {
Log.d("chat", "WebSocket Connect");
}
@Override
public void onMessage(String message) {
Log.d("chat", String.format("WebSocket Message %s", message));
sendBroadcast(BroadCastIntent.putExtra("trigger", 1).putExtra("message", message));
}
@Override
public void onMessage(byte[] data) {
}
@Override
public void onDisconnect(int code, String reason) {
Log.d("chat", String.format("WebSocket Disconnect %s, %s", code, reason));
}
@Override
public void onError(Exception error) {
Log.d("chat", String.format(" WebSocket ERROR %s", error));
}
}, extraHeaders);
client.connect();
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null && intent.getExtras() != null) {
Log.d("chat", intent.toString());
client.send(intent.getStringExtra("message"));
}
return START_STICKY;
}
}Конструктивная критика - критика, в которой говорится не что плохо, а что и как сделать лучше.