如何在应用程序退出时执行一些代码?我想在应用程序退出时删除临时数据。当我说应用程序退出时,意味着应用程序不是在后台最小化运行,而是完全关闭。
我尝试创建一个运行在单独进程中的服务,该服务检查应用进程是否未运行,然后删除临时文件夹。使用此方法,由于进程仍在以最低优先级运行,因此不总是删除临时文件夹。
我无法在OnDestroy()中实现这一点。
服务代码:
我尝试创建一个运行在单独进程中的服务,该服务检查应用进程是否未运行,然后删除临时文件夹。使用此方法,由于进程仍在以最低优先级运行,因此不总是删除临时文件夹。
我无法在OnDestroy()中实现这一点。
服务代码:
[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;
}
}