簡體   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