1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Service-Run-Checker: Läuft Service oder nicht?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von sem_thesis, 11.06.2011.

  1. sem_thesis, 11.06.2011 #1
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Hallo!


    Mein App besteht aus 6-7 Services, die zum Teil auch gleichzeitig laufen können. Da die App noch in Entwicklung ist, kommen App-crashes häufig vor.

    Deshalb möchte ich einen Service erstellen, der periodisch überprüft ob alle Services laufen oder nicht. Wenn nicht, sollen sie erneut gestartet werden.

    Der Service wird natürlich in einem anderen com-Paket erstellt werden, da er sonst auch abstürzen würde.

    Ist so-was möglich?
    Gibt es einen effizienteren Weg?
     
  2. sem_thesis, 11.06.2011 #2
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Ich habe die obige Idee mithilfe des ActivityManagers versucht umzusetzen, bekomme jedoch Fehler :S :S

    com.project.xx
    Enthält alle Services

    com.project.servicemanager
    Enthält die Service-Klasse ServiceManager.java


    ServiceManager.java

    Code:
    ....
    ....
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE))
    {
       if(!"com.project.xx.SomeServiceName".equals(service.service.getClassName()))
             {
                g = new Intent();
                g.setAction("com.project.xx.SomeServiceName");
                getBaseContext().startService(g);
              }
    }
    ....
    ....
    
    Bekomme jetzt aber Error:

    Was soll das?:confused:



    EDIT: Ist das Problem vielleicht, dass ich ServiceManager in der MainActivity des Pakets com.project.xx starte?

    Also für com.project.xx.MainActivity.java:

    Code:
    police = new Intent();
    police.setComponent(new ComponentName("com.project.servicemanager","com.project.servicemanager.ServiceManager"));
    getBaseContext().startService(police);
    
    Ich habe auch den android:exported = "true" - Tag eingefügt für den ServiceManager im Android.Manifest.xml.
     
    Zuletzt bearbeitet: 12.06.2011

Diese Seite empfehlen