[英]Observing application state changes in Android
我从Web编程进入Android,在Web上,我们有许多用于跟踪应用程序状态和观察更改的库:
应用如何在Android中跟踪和观察全局状态? 显然,RxJS在RxJava中有一个类似物,我已经看到了一些Redux端口,但是这些端口很常见吗? 如果没有,典型的是什么?
编辑 :“全局状态”是模棱两可的,并且我没有一个很好的定义,但是一个例子可能是一堆从服务器获取的用户配置文件。 多个活动可能需要该信息,并且如果它们独立地获取信息,效率会很低,因此最好在应用程序中为它们提供一个存储。
层之间有很多通信方式。
1)您可以使用事件总线方法。 Otto或EventBus库。 另外,您可以使用RxJava实现自定义事件总线。
2)您可以使用本地广播接收器。
3)您可以仅使用简单的回调或观察者模式,具体取决于接收者的数量。
4)您可以使用RxJava,它在Android社区中现在非常流行。
除了@Anton所说的以外,以下是从应用程序中的任何位置观察和查询数据的两种方式:
1)SQLLite数据库教程
2)以及更强大的ContentProvider Google文档
SQLLite数据库将提供一个数据库,用于简单地存储和检索对象数据。
ContentProvider
允许您利用Android的内置服务来存储和检索数据。 如果您希望其他应用程序可以访问您的数据,则可以使用ContentProvider
使其可用。 因此,从某种意义上讲,您的数据将成为要合并到任何应用程序的“全局”文件。
编辑
根据我的经验,除非绝对需要能够查询更大的数据集,否则我不会使用它们。 他们有点麻烦。
例如,SQLLite数据库的一大缺点是您必须编写所有CRUD操作。 为了缓解这种情况,有一些可用的ORM框架可以简化对数据库中创建的任何表使用标准CRUD函数的过程。 如果您决定走这条路,显然推荐了五个,推荐的五个Android ORM
根据您要执行的操作,另一种可行的方法是使用诸如Parse之类的API服务来容纳和查询您的数据。 Parse现在是开源的,因此您需要在自己的服务器上进行设置,但是它为您提供了所有内置查询的功能。 (注意:数据库是MongoDB)。
简而言之,在Android中获得额外的查询功能会花费一些精力,但有可能,并且有一些可行的解决方案可帮助减轻负担。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.