小编Xzi*_*il0的帖子

如何在android上检测应用程序退出?

如何在应用程序退出时执行一些代码?我想在应用程序退出时删除临时数据.通过应用程序退出我的意思是应用程序没有在后台运行最小化,它完全消失.

我试图使服务在单独的进程中运行,服务正在检查应用程序进程是否未运行它应该删除临时文件夹.使用此方法,临时文件夹并不总是被删除,因为进程仍以最低优先级运行.

我无法在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;
    }
}
Run Code Online (Sandbox Code Playgroud)

android xamarin.android xamarin

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×1

xamarin ×1

xamarin.android ×1