我对Android很陌生。
我有一个健身应用程序,用户可以改变它的健身房。有几个活动内容依赖于用户的健身。一项活动将显示健身房的锻炼,另一项活动将显示体育馆的运动员,等等。
我想要的是,当用户更改为健身房时,会更新所有这些活动。
我知道如何在iOS中这样做,我只需要添加一个观察者NotificationCenter.default.addObserver(),但我真的不知道如何在android上这样做。
有可能吗?如果是,怎么做?
发布于 2018-08-07 04:42:52
首先,根据谷歌的说法,你的应用程序应该只包含一个入口点,换句话说,就是一个Activity,并且有Fragments来表示应用程序的内容。
其次,为了解决您的问题,您可以使用SharedPreferences。它有onSharedPreferencesChangeListener();,可以用来监听信息的更新(例如健身房名称、您的自定义用户权限、用户角色等等)。当SharedPreferences中的某些内容发生变化时,您会通知应用程序的所有依赖对象使用观测器模式相应地更改它们的信息(P.S.可以为此使用RxJava )。您还可以在所有的SharedPreferences中实现Fragments更改侦听器,并在那里更新它们的数据。
如果出于任何原因,您希望在应用程序中坚持使用多个Activities,则仍然可以使用SharedPreferences,但您只需读取Activity onCreate();方法中的首选项值并相应地创建内容(更改项可见性、颜色等),而不是监听更改。
这是其中一种方法。希望这能让你走上正确的方向。祝你好运:)
发布于 2018-08-07 06:13:39
我认为Android体系结构组件可能会帮助您,特别是LiveData,这是一个可以观察到的。
与常规的可观察到的不同,LiveData是生命周期感知的,这意味着它尊重其他应用程序组件的生命周期,例如活动、片段或服务。这种意识确保LiveData只更新处于活动生命周期状态的应用程序组件观察者。
LiveData将通知您的任何活动,即将到来的前景。
https://stackoverflow.com/questions/51718858
复制相似问题