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

eigenen Service beenden

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von cHi-ses-, 25.01.2012.

  1. cHi-ses-, 25.01.2012 #1
    cHi-ses-

    cHi-ses- Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    19.01.2012
    Huhu
    wiedermal ein (hoffentlich) kurzes Problem. Ich starte meinen eigenen Service erfolgreich und will diesen dann beenden, dass funktioniert aber leider nicht :bored:
    Code:
    public class SensorServiceActivity extends Activity {    
        Intent sensorService;
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);
            sensorService = new Intent(getApplicationContext(), SensorService.class);
            setContentView(R.layout.main);
        }
        
        public void onResume() {
            super.onResume();
            Button button1 = (Button) findViewById(R.id.button1); 
            button1.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Log.d("DEBUGSERVICE", "Start Button pressed");
                    startService(new Intent(getApplicationContext(), SensorService.class));
                }
            });
            Button button2 = (Button) findViewById(R.id.button2); 
            button2.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Log.d("DEBUGSERVICE", "Stop Button pressed");
                    stopService(new Intent(getApplicationContext(), SensorService.class));
                }
            });
        }
    Service
    Code:
    public void onCreate(Bundle savedInstanceState) {          
            Toast.makeText(getApplicationContext(), "My Service started! onCreate", Toast.LENGTH_SHORT).show();       
        }
        
        /*
         * (non-Javadoc)
         * @see android.app.Service#onStart(android.content.Intent, int)
         */
        public void onStart(Intent intent, int startid) {
            Toast.makeText(this, "My Service Started! onStart", Toast.LENGTH_LONG).show();
        }
     
        public void onDestroy(Intent intent, int startid) {
            Toast.makeText(this, "My Service Stoped! onDestroy", Toast.LENGTH_LONG).show();
        }
    Das starten funktioniert, ohne Probleme, die Methode onStart wird aufgerufen. Leider funktioniert das beenden des Services einfach nicht! es wird, wenn ich auf den 2. Button drücke, einfach nicht die onDestroy aufgerufen. Wieso?
    Ist
    Code:
    stopService(new Intent(getApplicationContext(), SensorService.class));
    nicht richtig?

    Vielen Dank schonmal!!
     
  2. Lightning2010, 25.01.2012 #2
    Lightning2010

    Lightning2010 Junior Mitglied

    Beiträge:
    40
    Erhaltene Danke:
    8
    Registriert seit:
    30.10.2011
    Hab noch nicht soviel mit Services gearbeitet, aber versuchs mal so:
    Code:
    Intent i=new Intent(new Intent(getApplicationContext(), SensorService.class));
    startService(i);
    //Programm
    stopService(i);
    
    Gruß
    -Lightning2010
     
  3. strider, 25.01.2012 #3
    strider

    strider Erfahrener Benutzer

    Beiträge:
    208
    Erhaltene Danke:
    45
    Registriert seit:
    30.09.2011
    Phone:
    Nexus S
    Dein onDestroy() enthält Parameter, damit hast du eine neue Funktion implementiert statt eine vorhandene zu überlagern.
     
    cHi-ses- bedankt sich.
  4. cHi-ses-, 26.01.2012 #4
    cHi-ses-

    cHi-ses- Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    19.01.2012
    hatte ich schon, dachte ich nämlich auch dran. -> war es nicht

    @strider, das war es. ich idiot. vielen dank!
     

Diese Seite empfehlen