繁体   English   中英

观察Android中的应用程序状态更改

[英]Observing application state changes in Android

我从Web编程进入Android,在Web上,我们有许多用于跟踪应用程序状态和观察更改的库:

  • 骨干模型和集合
  • Knockout.js
  • 助焊剂/终极版
  • RxJS

应用如何在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM