M
mitch_HD2
Fortgeschrittenes Mitglied
- 1
Hallo..
ich empfange über UDP ein Byte....
nachdem ich das empfangen habe will ich damit weiter arbeiten...
aber wenn ich in meiner Receive() Funktion weiter arbeite stürzt meine app immer ab.
packe ich meine funktion mit den byte's hinter dem receive() dann arbeitet der mit dem leerem byte. also dem noch nicht
In meinen OnCreate()
und mein Receive() in einem Asynctask()
Ich kann
if ((BufRec[14]&0x01)==1) Fragment2.btnlight1.setChecked(true);
nicht hinter
new TempSync().execute();
ausführen...
innerhalt der Receive() funktioniert es.. stürzt aber öfter ab
ich empfange über UDP ein Byte....
nachdem ich das empfangen habe will ich damit weiter arbeiten...
aber wenn ich in meiner Receive() Funktion weiter arbeite stürzt meine app immer ab.
packe ich meine funktion mit den byte's hinter dem receive() dann arbeitet der mit dem leerem byte. also dem noch nicht
In meinen OnCreate()
Code:
....
...
..
if (new Ping().execute() != null){
Log.d("MAtec","ping is OK");
new UdpOnSend().execute();
new TempSync().execute();
if ((BufRec[14]&0x01)==1) Fragment2.btnlight1.setChecked(true);
if ((BufRec[14]&0x02)==2) Fragment2.btnlight2.setChecked(true);
if ((BufRec[14]&0x04)==4) Fragment3.btnlight3.setChecked(true);
Log.d("MAtec","fertig");
//bytetobool();
}
und mein Receive() in einem Asynctask()
Code:
public static class TempSync extends AsyncTask<Object, Object, Object> {
@Override
protected Object doInBackground(Object... arg0) {
try {
Recieve();
return true;
//lampsync();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
..........
....
...
public static void Recieve() throws IOException{
DatagramPacket p = new DatagramPacket(BufRec, BufRec.length);
DatagramSocket s = new DatagramSocket(Port);
s.receive(p);
BufRecStr = new String(BufRec, 0, p.getLength());
//Log.i("Udp Receive", BufRec);
Log.d("Udp Receive", BufRecStr);
TempRecIn = (BufRecStr.substring(0,5)+ " °C");
TempRecOut = (BufRecStr.substring(6,11)+ " °C");
Log.d("Udp Receive", Integer.toHexString(BufRec[14]));
// if ((BufRec[14]&0x08)==8) Fragment3.btnlight4.setChecked(true);
s.close();
//bufrec2 = (byte) (BufRec[14]&0x01);
//int test = BufRec[14]&1;
Log.d("Udp Receive", "hallo "+ (BufRec[14]&0x01));
Log.d("Udp Receive", "hallo "+ (BufRec[14]&0x02));
Log.d("Udp Receive", "hallo "+ (BufRec[14]&0x04));
Log.d("Udp Receive", "hallo "+ (BufRec[14]&0x08));
// if ((byte) (BufRec[14]&0x01)==1) Fragment2.btnlight1.setChecked(true);
/// TESTLAUF
fillTemps(TempRecIn,TempRecOut);
///
}
Ich kann
if ((BufRec[14]&0x01)==1) Fragment2.btnlight1.setChecked(true);
nicht hinter
new TempSync().execute();
ausführen...
innerhalt der Receive() funktioniert es.. stürzt aber öfter ab