Android-在其他活动中启动多种方法

时间:2018-08-07 04:31:18

标签: java android observer-pattern

我真的是Android新手。

我有一个健身应用程序,用户可以在其中更改健身房。在几种活动中,内容取决于用户的健身房。 一项活动将显示健身房的锻炼,另一项活动将显示健身房的运动员等等。

  

我想要的是当用户   改变它的健身房

我知道如何在iOS中做到这一点,我只需要添加一个观察者NotificationCenter.default.addObserver(),但我真的不知道如何为android做到这一点。

有可能吗?如果是,怎么办?

2 个答案:

答案 0 :(得分:3)

首先,根据Google的说法,您的应用程序应仅包含一个入口点,即一个Activity,并具有Fragments来代表应用程序的内容。

第二,要解决问题,可以使用SharedPreferences。它具有onSharedPreferencesChangeListener();,可用于侦听信息更新(例如,GYM名称,您的自定义用户权限,用户角色等)。当SharedPreferences中发生某些更改时,您通过使用Observer pattern通知应用程序的所有从属对象相应地更改其信息(P.S.可以使用RxJava)。您还可以在所有SharedPreferences中实现Fragments的更改监听器,并在那里更新其数据。

如果出于某种原因要在应用程序中坚持使用多个Activities,您仍然可以使用SharedPreferences,但是您不必听更改,而只是阅读{{ 1}} Activity方法并相应地创建内容(更改项目的可见性,颜色等)。


那是方法之一。希望这能为您指明正确的方向。祝你好运:)

答案 1 :(得分:1)

我认为Android Architecture Components可能会帮助您,特别是LiveData这是一个可观察的问题。

与常规的可观察对象不同,LiveData具有生命周期感知能力,这意味着它尊重其他应用程序组件(例如活动,片段或服务)的生命周期。这种意识确保LiveData仅更新处于活动生命周期状态的应用程序组件观察者。

LiveData将通知您即将发生的任何活动。