tes*_*558 31 android android-loader
我阅读了关于装载机的android指南.我阅读了Alex Lockwood的4部分教程.也测试了他的示例应用程序.试图阅读谷歌应用程序的I/O 13,有一个流功能,阅读其代码发现它使用加载器,因为它提供了创建代码的代码StreamLoader.这是链接
我想他们用它来监控新数据并将它们添加到他们的视图中.
Alex的应用程序也是如此.有一个观察者,当有新的数据条目触发UI的刷新.
到目前为止,在我看来,Loaders是"livescore"应用的理想选择.当有新的更新(这意味着新的数据输入)时,它会出现在您的屏幕上.
也许像Twitter这样的东西.为您自己的新消息,自定义Observer通知更改,自定义Loader带来数据和适配器显示它们.无需"拉动刷新".但是,Twitter又有了自己的RESTful API,它有点做同样的工作.不需要指向新数据的指针.(不知道他们是怎么做的,但我想某种程度上"推送"你的设备的新数据).
所以我的问题是:
当我们想要观察数据源并 更改我们的视图以便显示新数据时,装载程序是最佳选择吗?
是否有任何示例/应用程序我可以检查处理该逻辑:监视数据源 - >获取数据 - >刷新UI
任何特征情况(如我之前提到的"实时评分"),当我们必须处理它们时,我们必须选择装载机?
加载器的第二部分(配置改变,保持数据)我认为它清楚.当用户旋转设备时,没有人想要重新下载图库.
谢谢你,原谅我的困惑
KMD*_*Dev -4
是的,它们就是您想要用于您所描述的流程的内容。顺便说一句,AsyncTasks 和 Services 也有相似之处。
异步任务
描述(来自文档):
AsyncTask 被设计为围绕 Thread 和 Handler 的辅助类,并不构成通用的线程框架。AsyncTasks 理想情况下应该用于短操作(最多几秒钟)。
注意:使用工作线程时可能遇到的另一个问题是,由于运行时配置更改(例如当用户更改屏幕方向时),您的 Activity 意外重新启动,这可能会破坏您的工作线程。要了解如何在其中一次重新启动期间保留任务以及如何在活动被销毁时正确取消任务,请参阅 Shelves 示例应用程序的源代码。
如果您特别只想对基本线程样板进行包装,请使用 AsyncTask,否则如果您需要通用方法在 Activity 或 Fragment 中运行密集型操作,我建议您使用 AsyncTaskLoader 。您可以从 AsyncTask 获得相同的好处,但它可以为您处理生命周期问题。还有一些特殊的加载器,例如 CursorLoader,用于处理特定的数据源,并方便与某些 UI 元素交互。
服务
描述(来自文档):
服务是一个应用程序组件,可以在后台执行长时间运行的操作,并且不提供用户界面。另一个应用程序组件可以启动一个服务,即使用户切换到另一个应用程序,它也会继续在后台运行。此外,组件可以绑定到服务以与其交互,甚至执行进程间通信(IPC)。例如,服务可能会在后台处理网络事务、播放音乐、执行文件 I/O 或与内容提供商交互。
您将使用一项服务来处理推送到手机的数据。否则,用户将必须打开您的应用程序才能获取任何推送的数据。服务不与您的 UI 交互。因此,常见的设计模式是使用服务从服务器收集数据(无论是实时推送还是轮询)并将其存储在数据库中,以便在应用程序打开或未打开时使用。服务还有许多其他用例,但这一个可能是最受欢迎的。
结论 因此,您不需要使用 Loader 加载数据或在后台线程上执行长时间运行的操作并将结果(或进度)传递给 UI 线程,但它们是大多数用例的最佳选择。
| 归档时间: |
|
| 查看次数: |
3833 次 |
| 最近记录: |