【问题标题】:Activity or service in background task?后台任务中的活动或服务?
【发布时间】:2011-05-27 10:15:45
【问题描述】:

这是我的设置;我有一个新闻应用程序。这个应用程序从本地存储中加载了一些列表视图(我为此滥用了 sharedpreferences,但如果这是一个好的做法将是另一个问题)。我希望能够顺利更新这个本地存储。

我的第一个方法是让按钮触发服务,这成功了。但我也希望服务在完成后刷新活动。我无法做到这一点。 我目前的方法似乎有效,但在 3G 上并不顺利。活动 A 显示一个“正在加载”框,然后启动活动 B 并自行销毁。活动 B 还显示一个加载框,进行下载,然后销毁自身并使用新内容重新启动活动 A。 但是,在 3G 上,最后一种方法会使屏幕在从 A 过渡到 B 时黑屏几秒钟。

为了视觉流畅,我希望一个加载弹出窗口连续显示。完成后,应刷新活动。

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

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

提前非常感谢

【问题讨论】:

  • 没有代码,很难知道问题出在哪里。
  • 问题是活动之间的“滞后”,由活动 B 太重引起。这是活动 B:pastebin.com/3akrHtBa(对荷兰 cmets 感到抱歉:D)编辑 > 我不希望使活动 B 更轻(尽管这将是一个附带好处),但我希望使 UI 平滑。

标签: android interface service android-activity


【解决方案1】:

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

【讨论】:

  • 我可以稍后再试,如果这确实解决了延迟问题,我会将其标记为完成。 +1 无论如何,因为它肯定更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多