Android Objekt weiter geben

mOneStyle

Mitglied
Hallo,
Ich habe zwei Klassen ConnectActivity und ConrollerActivity. In ConnectActivity wird ein Object vom typ Connection (auch eine eigene klasse) erstellt. Ich muss irgendwie dieses Objekt ControllerActivity übergeben. ControllerActivity rufe ich so auf:
Java:
Intent intent = new Intent(this, ControllerActivity.class);
startActivity(intent);
Ich habe es schon mit Gson probiert, aber ich bekomme da immer ein Stackoverflow. Ich glaube weil Connection AsyncTask extended.
Hier etwas Code:
Gson:
Java:
Connection c = new Connection();
Gson gS = new Gson();
String target = gS.toJson(c); //<-- gibt stackoverflowError
Connection:
Java:
public class Connection extends AsyncTask<Void,Void,Void> {
    Socket socket = null;
    DataOutputStream DOS = null;
    DataInputStream DIS = null;
    boolean connected = false;
    String message = "";

    void write(String message) {
        this.message = message;
    }

    @Override
    protected Void doInBackground(Void... voids) {
        try {
            socket = new Socket("192.168.2.105",5000);
            DOS = new DataOutputStream(socket.getOutputStream());
            DIS = new DataInputStream(socket.getInputStream());
            DOS.writeByte(1);
            System.out.println(DIS.readUTF());

            connected = true;
            if(connected) {
                do {
                    if(!(message.isEmpty())) {
                        DOS.writeUTF(message);
                        System.out.println(message);
                        if(!message.contains("disconnect")) message = "";
                    }
                } while(!message.contains("disconnect"));
            }
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            //openConnectActivity();
            DOS.flush();
            //DOS.close();
            //DIS.close();
            //socket.close(); //TODO ON APP CLOSE
        } catch (IOException e) {

            e.printStackTrace();
        }

        return null;
    }
}

Wie kann ich Gson verwenden oder gibt es noch eine andere Möglichkeit bin echt am verzweifeln -.-
 
Zuletzt bearbeitet von einem Moderator:
Hab das mit Serialization gemacht bekomme diesen Fehler
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = de.thm.mni.swtp.formeldrone.swtp_autonomousdrone.Connection)
 
Hab das mit Serialization gemacht bekomme diesen Fehler
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = de.thm.mni.swtp.formeldrone.swtp_autonomousdrone.Connection)

Hallo.

Wieso verwendest du nicht einfach mal Google?

Aber ich will ja nicht so sein.
Connection ist nicht Serializable.

Grüße
 
Gar nicht.

Wenn du vielleicht erklärst was du eigentlich vorhast kann man dir sicher helfen.
Warum musst du Connection weiterreichen?
Warum verwendest du nicht ein Hintergrund Service?

Grüße
 
Ich will eine Drohne steuern mit der App im ersten Frame drückt man connect to Laptop bei der App da wird eine Verbindung aufgebaut falls möglich und wenn die Verbindung erfolgreich aufgebaut wurde kommt man zum controller jetzt muss der Controller messages dem server schicken welche tasten gedrückt wurden also brauch ich die Connection vom ersten frame oder wie sollte man das machen
 
Mit einem Background Service.

Die Doku siehe Hier

Dein Service sorgt für die Verbindung.
Und der zweite Frame schickt dann die Befehle wie vor, zurück usw. (Bildlich gesprochen).
Der Service übersetzt diese und schickt diese weiter.
 

Neue Themen


Zurück
Oben