【发布时间】:2011-02-18 06:55:57
【问题描述】:
目前这是我正在关注的, 一旦我的应用程序启动,我必须发送一个 REST 服务请求, 这将花费一些时间,所以我想到了显示加载屏幕,
在我的 Activity 的onCreate() 中,首先要显示加载屏幕(进度对话框),
然后我使用 AsyncTask 启动后台 Activity,即请求 REST 服务和 onPostexecute() 我关闭对话框,然后执行 setContentView(myxml); 并更新 UI。
这种方法可以改进吗?
我遇到的问题是,
有时,垃圾收集器可能会启动(由于各种原因)并且我的应用程序永远挂在加载屏幕上,因为垃圾收集器,甚至没有发送对 REST 服务的请求,因此一些唤醒呼叫来了,休息是灾难并强制关闭。
但有时甚至 ForceClose 也不会很快,可能是因为 GC。所以我什至无法返回并停留在加载屏幕中。那时我唯一能做的就是回家。之后,如果我回到我的应用程序,它仍在加载,所以这种方法肯定是一个糟糕的设计。什么是正确的方法?
【问题讨论】:
-
我不认为这完全是坏事。我的意思是没有编码的例子很难说。但是,只要您正确处理 onCreate() 和 onDestroy() 以在设备的方向发生更改时正确处理,这似乎很合理。 ForceClose 不应该因为 GC 而发生。确保在其余服务调用上设置超时,以确保 onPostExecute 可以实际发生并且不会耗尽整个线程池。
标签: android android-widget android-layout android-lazyloading