Czesc,
pisze aplikacje na adroida, ktora laczy sie z serwerem wysyla string ai dobiera obiekt, wysylanie odbieranie dziala. Chcialbym zeby uruchamialo sie okno(dialog), gdy polaczenia z internetem nie ma, badz gdy serwer nie dziala. Problem w tym ze nie wiem jak to zrobic, wiem jak uruchomic dialog w klasie rozszerzonej po Activity, ale nie wiem jak to obsluzyc w klasie rozszerzonej przez AsyncTask.
Oto moj kod klienta:
package com;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import edu.sfsu.cs.orange.ocr.R;
import lisa.API.KlientDoSerwerGlowny;
import lisa.centrumrobotow.formatklasywysylajacej.ProduktList;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.widget.TextView;
import android.widget.Toast;
public class SendOcrResult extends AsyncTask<String, Integer, String> {
public static String adres="185.5.97.66";
//public static String adres="192.168.132.251";
public int port=1605;
public String dataIn;
public String dataOut = "S";
public ProduktList list;
public KlientDoSerwerGlowny sendObject;
public String error;
protected boolean connect2() {
try {
Socket gniazdo = new Socket();
SocketAddress sockaddr = new InetSocketAddress(adres, port);
gniazdo.connect(sockaddr);
if (gniazdo.isConnected()) {
list = new ProduktList();
ObjectOutputStream out = new ObjectOutputStream(gniazdo.getOutputStream());
ObjectInputStream in = new ObjectInputStream(gniazdo.getInputStream());
out.writeObject(this.sendObject);
Object tmp;
tmp = in.readObject();
if(tmp instanceof String) {
error = (String) tmp;
} else {
list = (ProduktList) tmp;
}
gniazdo.close();
} else {
dataOut = "Blad polaczenia";
//return false;
}
} catch (Exception e) {
dataOut = "blad";
}
return true;
}
@Override
protected String doInBackground(String... arg0) {
connect2();
return null;
}
protected void onPostExecute(String result) {
if (error == null){
ResponseRequest.listOut(list);
} else{
ResponseRequest.textOut(error);
}
}
}
Jesli wie ktos, jak to ogarnać to prosilbym o pomoc, bede bardzo wdzieczny.