M
maksimilian
Ambitioniertes Mitglied
- 0
Hallo Ihr,
mein einfacher TCP-Client sieht (auf's Wesentliche reduziert) wie folgt aus:
Der Client hat bisher die Button-Clicks korrekt verarbeitet. Wie das so ist, tut er es nach einigen Änderungen am Code nicht mehr korrekt. Das äußert sich darin, dass nach einigen Button-Clicks, die korrekt verarbeitet werden, der myClientTask.execute() laut Debugger des Android Studios nicht mehr zum Betreten des MyClientTask-Codes führt, sondern nur im public final AsyncTask der übergeordneten Klasse (SyncTask.java) landet, von wo er sofort zurückkehrt hinter den execute Aufruf in MainActivity.
Es ist zuviel verlangt, mit diesen Angaben den Fehler zu finden. Mich würde aber interessieren, wie ich mit dem Debugger arbeiten muss, um die Ursache des Fehlverhaltens herauszufinden.
maksimilian
mein einfacher TCP-Client sieht (auf's Wesentliche reduziert) wie folgt aus:
Code:
public class MainActivity<firstCall> extends AppCompatActivity {
.....
.....
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button1 = (Button) findViewById(R.id.GUIButton1);
Button1.setOnClickListener(Button1_OnClickListener);
}
OnClickListener Button1_OnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
MyClientTask myClientTask = new MyClientTask(1);
myClientTask.execute();
}
public class MyClientTask extends AsyncTask<Void, Void, Void> {
String dstAct;
String response = "";
MyClientTask(int act, TextView textResponse1) {
dstAct = Integer.toString(act);
}
@Override
protected Void doInBackground(Void... arg0) {
Socket socket = null;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;Oben
String s;
try {
socket = new Socket("192.168.178.66", 50000);
dataOutputStream = new DataOutputStream(
socket.getOutputStream());
dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream.writeUTF(dstAct); / der Server wird zu einer Aktion aufgefordert
response = dataInputStream.readUTF(); // Nachricht vom Server, wird in
// onPostExecute() ausgegeben
} ....
} // doInBackground
@Override
protected void onPreExecute() {.....}
@Override
protected void onPostExecute() {.....}
} // class MyClientTask
}
Der Client hat bisher die Button-Clicks korrekt verarbeitet. Wie das so ist, tut er es nach einigen Änderungen am Code nicht mehr korrekt. Das äußert sich darin, dass nach einigen Button-Clicks, die korrekt verarbeitet werden, der myClientTask.execute() laut Debugger des Android Studios nicht mehr zum Betreten des MyClientTask-Codes führt, sondern nur im public final AsyncTask der übergeordneten Klasse (SyncTask.java) landet, von wo er sofort zurückkehrt hinter den execute Aufruf in MainActivity.
Code:
@MainThread
public final AsyncTask<Params, Progress, Result> execute(Params... params) {
return executeOnExecutor(sDefaultExecutor, params);
}
Es ist zuviel verlangt, mit diesen Angaben den Fehler zu finden. Mich würde aber interessieren, wie ich mit dem Debugger arbeiten muss, um die Ursache des Fehlverhaltens herauszufinden.
maksimilian