Jak wykonać kod przy wyjściu aplikacji? Chcę usunąć dane tymczasowe po zamknięciu aplikacji. Przy wyjściu z aplikacji mam na myśli to, że aplikacja nie jest uruchomiona w tle i całkowicie zniknęła.Jak wykrywać wyjście aplikacji na Androida?
Próbowałem wykonać usługę, która działa w oddzielnym procesie, usługa sprawdza, czy proces aplikacji nie działa, powinien usunąć folder tymczasowy. Dzięki temu folderowi Temporary temp nie zawsze jest usuwany, ponieważ proces nadal działa z najniższym priorytetem.
Nie mogę tego zrobić w OnDestroy().
Kod serwisowy:
[Service(Process = "com.lobomonitor")]
[IntentFilter(new string[] { "com.androidgui.ProcessMonitorService" })]
public class ProcessMonitorService : Service
{
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
Thread processThread = new Thread(() =>
{
ActivityManager actManager = (ActivityManager) this.GetSystemService(ActivityService);
while (true)
{
Thread.Sleep(1000);
IList<ActivityManager.RunningAppProcessInfo> procList = actManager.RunningAppProcesses;
procList.Any(i => i.ProcessName.Equals("com.androidgui"));
if (!procList.Any(i => i.ProcessName.Equals("com.androidgui")))
{
FolderManager.Singleton.DeleteTempFolder();
break;
}
}
});
processThread.Start();
return StartCommandResult.RedeliverIntent;
}
public override IBinder OnBind(Intent intent)
{
return null;
}
}
http://stackoverflow.com/questions/16298795/is-it-possible-to-detect-exit-of-an-application –
http://stackoverflow.com/questions/6682792/android-can-i -detect-użytkownika-ma-left-the-app –
Cykl życia aplikacji jest zarządzany przez system operacyjny Android, myślę, że nie można go wykryć. http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon – naveejr