Android 应用程序:如何请求额外的关机时间来完成保存文件?

Android App: How can I request extra time on shutdown to finish saving files?

我 运行 遇到了一个问题,我认为这是由于 Android 在我的应用程序仍在向文件写入数据时终止我的应用程序引起的。

在 iOS 上,我可以执行此操作以强制 OS 等到我完成所有操作后再关闭:

    __block UIBackgroundTaskIdentifier aTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^
    {
        [[UIApplication sharedApplication] endBackgroundTask:aTaskID];
    }

是否有一些等价物让我调用 Android 以便 OS 知道我正在做清理工作,我只需要在它消灭应用程序本身之前完成这些文件的编写?

根据 Activity LifeCycle Documentation,当应用程序被销毁时,将始终调用 onPause() 和 onStop() 方法。但是,执行任何 CPU 密集型任务应始终在 Activity.

的 onStop() 方法中执行

根据您的要求,我建议您在 Activity 的 onStop() 方法中进行清理工作。

如果您认为 Android OS 正在终止您的应用程序,这意味着 OS 正在尝试释放内存资源以供其他应用程序运行,因此,onStop () 方法将被调用,您可以实现您的逻辑以在此方法中保存数据。

我不建议使用 onPause() 方法,因为在其他应用程序之间快速切换、传入 phone 呼叫等情况下,它可能会被过于频繁地调用。