Problem mit Multicast im Sleep

Xilent

Xilent

Fortgeschrittenes Mitglied
89
Hallo,

habe irgendwie ein Problem mit meinem MulticastReceiver in meiner Android App.
An sich funktioniert der super und macht genau das was er soll, allerdings meldet er sich garnicht mehr, sobald das Telefon gesperrt wurde. Wenn der Display wieder an ist dann geht er wieder.

Hier der wichtige Auszug aus meiner Klasse:
Code:
        try
        {
            ia = InetAddress.getByName(ip);
            s = new MulticastSocket(port);
            s.joinGroup(ia);
        }
        catch(Exception e)
        {
            Log.v("Socket Error: ",e.getMessage());
        }
        //Thread multiCastReceive = new Thread(ReceiveMulticast);
        //multiCastReceive.start();

        WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        if (wifi != null) {
            wifilock = wifi.createWifiLock(WifiManager.WIFI_MODE_FULL,"wifiLock");
            wifilock.setReferenceCounted(true);
            wifilock.acquire();
            lock = wifi.createMulticastLock("MyMulticastLock");
            lock.setReferenceCounted(true);
            lock.acquire();
        }

        new Thread(new Runnable(){
            @SuppressLint("DefaultLocale")
            @Override
            public void run() {
                try {
                    InetAddress ia = null;
                    byte[] buffer = new byte[1024];
                    DatagramPacket dp = new DatagramPacket(buffer, buffer.length, ia, port);


                    while (true) {
                        if(s != null) {
                            s.receive(dp);
                            String s = new String(dp.getData(), 0, dp.getLength());
                            if (s.length() > 1) {
                                if (s.equals("identRequest")) {
                                    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(activity);
                                    String identifier = sharedPreferences.getString("identifier", null);
                                    if (identifier != null) {
                                        Thread sendMulticast = new Thread(new MulticastSend(identifier));
                                        sendMulticast.start();
                                    }

                                } else {
                                    //doesn't match standard functionalitity. Trying to decrypt
                                    new executeDebugCommands().execute(s);
                                }
                                Log.d("Recieved Multicast: ", s);
                            }
                        }
                    }
                }catch(Exception e){
                    e.printStackTrace();
                }
            }
        }).start();
Das interessante daran ist, dass er nicht mal eine Fehlermeldung gibt. Als wäre der Service eingefroren und danach wieder aktiv.

Wisst ihr, was es mit dem Problem auf sich hat?

Gruß
xilent
 

Ähnliche Themen

D
  • djsnoopy
Antworten
6
Aufrufe
642
djsnoopy
D
S
Antworten
4
Aufrufe
1.034
Sempervivum
S
S
Antworten
8
Aufrufe
532
swa00
swa00
Zurück
Oben Unten