2010-12-18 57 views
0

这是我的设置;我有一个新闻应用程序。这个应用程序从本地存储加载一些列表视图(我滥用共享首选项,但如果这是好的做法将是另一个问题)。我希望能够顺利地更新本地存储。后台任务中的活动或服务?

我的第一种方法是制作一个按钮触发一个服务,这是一个窍门。但我也希望服务在完成后刷新活动。我无法做到这一点。 我目前的做法似乎有效,但在3G上并不流畅。活动A显示“加载”框,然后启动活动B并销毁自己。活动B还显示一个装载箱,下载,然后销毁自己并重新启动活动A与新内容。 但是,最后一种方法是,在3G上从A转换到B时,屏幕会变黑几秒钟。

为了视觉平滑,我想要一个加载弹出窗口不断显示。完成后,应该刷新活动。

有谁知道我该如何做到这一点?

我希望我的解释清楚。否则,我很乐意与您分享一些代码。

感谢很多提前

+0

没有代码,很难知道问题是什么。 – elevine 2010-12-18 00:23:22

+0

问题是由于活动B太重而导致的活动之间的“滞后”。这里是活动乙:http://pastebin.com/3akrHtBa(对不起,荷兰语意见:D)编辑>我不想让活动B更轻(虽然这将是一个附带的好处),但我期待使UI流畅。 – 2010-12-18 00:25:31

回答

1

你在你的评论链接到代码看,你在做你的活动onCreate方法的工作太多了。 onCreate应该保持轻量级,以便尽可能快地向用户显示UI。您可能需要将Activity设置的大部分移至onResume方法。此外,阻塞UI线程的任何事情(如获取和解析数据)都应在线程上完成。请在您的应用程序中使用AsyncTaskhttp://developer.android.com/reference/android/os/AsyncTask.html)来实现此目的。

+0

我可以稍后再尝试,如果这实际上解决了滞后问题,则标记为完整。 +1,不管因为它绝对更好。 – 2010-12-19 12:29:51