Obecnie mam usługę, która rozpocznie się w ciągu onCreate sposobu działania przy użyciu:Android: stop/start usługę powstałą w onCreate()
Intent intentService = new Intent(this, MainService.class);
this.startService(intentService);
Muszę teraz być w stanie zatrzymać tej usługi na zasadzie Naciśnij przycisk i ponownie uruchom go, naciskając inny przycisk, jednak nie jestem pewien, jak zatrzymać tę usługę i ponownie uruchomić ją po stronie metody onCreate.
Sądzę, że musiałbym uruchomić usługę w inny sposób niż to, co obecnie robię? Ale nie jestem pewien co do najlepszej metody.
Spojrzałem na stop service in android, ale ich sposób uruchomienia usługi nie działa w trybie onCreate.
Pełniejszy nad widzenia mojego kodu:
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lock = (Button) this.findViewById(R.id.lock);
unlock = (Button) this.findViewById(R.id.unlock);
lock.setOnClickListener(btn_lock);
unlock.setOnClickListener(btn_unlock);
unlock.setVisibility(View.VISIBLE);
lock.setVisibility(View.GONE);
Intent intentService = new Intent(this, MainService.class);
this.startService(intentService);
}
private OnClickListener btn_lock = new OnClickListener() {
public void onClick(View v) {
unlock.setVisibility(View.VISIBLE);
lock.setVisibility(View.GONE);
}
};
private OnClickListener btn_unlock = new OnClickListener() {
public void onClick(View v) {
unlock.setVisibility(View.GONE);
lock.setVisibility(View.VISIBLE);
}
};
EDIT wydaje się, że to działa tylko w onCreate kod nie zadziała w słuchacza onclick –
Tak. Ale spróbuj najpierw zatrzymać usługę, a następnie ją uruchomić. Nie zawiedzie się, jeśli usługa została już zatrzymana. – MDMalik
Wygląda na to, że nie działa on w ramach programu onclick, zakładając, że trzeba to zmienić na coś innego? –