【发布时间】:2011-06-29 14:43:56
【问题描述】:
我想要一个在我们的应用程序中实现 Twitter 的简单示例。我宁愿它不可浏览;它应该只在我们的应用程序区域中打开。登录后,用户可以在他/她的帐户上发布推文。
【问题讨论】:
我想要一个在我们的应用程序中实现 Twitter 的简单示例。我宁愿它不可浏览;它应该只在我们的应用程序区域中打开。登录后,用户可以在他/她的帐户上发布推文。
【问题讨论】:
很好的问题,为反问题留下了很大的空间:-)
我看到至少有两种方法可以走这条路(请注意,我不太了解 twitter 或它的使用方式):
您在手机上同步推特数据(“推文”?!?)以供日后查看。
您始终查看给定频道上当前推文的快照,并且不存储任何内容(用户凭据除外)。
作为第一个替代方案,您通常希望将目标上的 SQLite 数据库(可能使用自定义 content provider)与来自 twitter 网络服务器上的 twitter 频道的数据同步(您可以稍微了解一下公共 twitter API 的样子here)。
此同步将由手机上的后台service 完成。您的实际 GUI 不会与此服务本身通信,它宁愿从(并且仅从)本地 SQLite 数据库读取数据。这样,您的 GUI 将不依赖于网络延迟、数据流量或来自网络的数据可用性。它仅取决于本地目标上的数据库连接。确保在单独的线程中运行服务。默认情况下,它将在主线程(又名“GUI 线程”)中运行。
您可以向AlarmManager 传递一个条目,它会不时唤醒您的后台服务;该服务会将 twitter 数据缓存在数据库中,然后自行终止(以节省资源)。
第二种选择不需要数据库缓存层(但是建议摆脱 GUI 层中的 Web 依赖项,数据库将只包含最新数据,旧数据将无论用户是否阅读,都会被覆盖)。
在这两种选择中您可能想要存储一些基本的用户信息,例如用户名和密码。您可以将这些值存储在 SQLite 数据库中,或者如果您想保持简单:在 Shared Preferences 基础架构中。
您很可能还需要read and parse XML 来自网络的数据。这种读取和解析将由服务层完成(请记住:在单独的线程中运行它以避免滞后 UI 甚至导致 Application Not Responding 超时)。
【讨论】: