3

我对 Android 生命周期模型的理解是,当onPause()被调用时,我应该保存任何需要保存的状态,因为我的应用程序可以在我返回后的任何时候终止。我的目标是姜饼,所以onStop可能永远不会被调用。

但是在我的应用程序中,某些状态被保存在远程服务器上。我会定期刷新此状态,但如果调用 onPause 我不确定正确的做法,因为我的理解是一旦 onPause 返回我的应用程序可能会被杀死。由于我必须在另一个线程中运行 android http 请求,这似乎有问题:如果我在 onPause 中启动请求然后返回,那么我的应用程序可能会在保存状态的远程请求完成(甚至启动!)之前被终止。

我在想我应该在睡觉的地方进行某种同步并等待请求工作,但首先我不确定我什至可以在 onPause 中做到这一点,其次,onPause 不应该花费很长时间完成,所以如果有网络延迟,这也可能导致问题。

当需要将状态刷新到远程服务器或通常通过某种需要单独线程的方法时,是否有一些推荐的方法在 onPause 中保存状态?

4

2 回答 2

2

不完全确定你在做什么,但是

您可以将 HttpRequest 放入Service中,当您从此处生成 Thread 时,当您的活动点击 onPause 时,它​​不会被杀死。

然后,您可以使用BroadcastReciever回调您的应用程序,如果尚未启动,这将启动您的 Activity。

于 2013-02-10T16:54:54.017 回答
2

当状态需要刷新到远程服务器时,推荐在 onPause 中保存状态的方法:

在 OnPause 中启动一个服务(Android 服务)并将您的状态从该服务刷新到服务器,并在完成所需任务后关闭该服务。

于 2013-02-10T16:56:17.687 回答