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

Android - Launch multiple methods in others Activities

我真的是 Android 的新手。

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

What I would like, is to update all of these activities when the user change it's gym.

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

可能吗?如果是,如何?

首先,根据 Google,您的应用程序应该只包含一个入口点,换句话说,一个 Activity,并且 Fragments 代表应用程序的内容。

其次,为了解决您的问题,您可以使用 SharedPreferences. It has onSharedPreferencesChangeListener(); which could be used to listen for updates of information (e.g. GYM name, your custom user permissions, user role, etc.). When something changes in SharedPreferences you notify all dependent objects of application to change their information accordingly by using Observer pattern (P.S. can use RxJava。您还可以在所有 Fragments 中实现 SharedPreferences 更改侦听器并在那里更新它们的数据。

如果出于某种原因,您希望在应用程序中坚持使用多个 Activities,您仍然可以使用 SharedPreferences,但您只需读取首选项值而不是监听更改Activity onCreate(); 方法并相应地创建内容(更改项目可见性、颜色等)。


这是其中一种方法。希望这能让你朝着正确的方向前进。祝你好运:)

我认为 Android Architecture Components might help you with this, specifically LiveData 是一个 Observable。

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

LiveData 会通知您即将进入前台的任何活动。