Chciałbym z wnętrza usługi zatrzymać proces działający na telefonie. Znalazłem polecenie android.os.Process.killProcess(pid) ,ale po użyciu jej na jakimś procesie i ponownym wylistowaniu procesów, rzekomo skillowany proces nie znika z listy. Jakieś pomysły?
Dokumentacja twierdzi, że :
public static final void killProcess (int pid)
Kill the process with the given PID. Note that, though this API allows us to request to kill any process based on its PID, the kernel will still impose standard restrictions on which PIDs you are actually able to kill. Typically this means only the process running the caller's packages/application and any additional processes created by that app; packages sharing a common UID will also be able to kill each other's processes.
Z tego wynika, że możesz ubić tym tylko proces własnej aplikacji oraz procesy przez nią utworzone. Pakiety które dzielą ten sam UID też mogą ubijać swoje procesy nawzajem.
A jak to się robi "poprawnie" (o ile można tak powiedzieć w przypadku Androida)? Na szybko nie znam odpowiedzi a nigdy się tym nie bawiłem ale pewnie zaraz ktoś coś odpisze, ewentualnie zawsze jest Google 😉.