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

    cHi-ses- Threadstarter Neuer Benutzer

    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

    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

    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

    hatte ich schon, dachte ich nämlich auch dran. -> war es nicht

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