使用广播接收器在活动之间同步数据

时间:2018-09-28 09:08:20

标签: android broadcastreceiver

这是使用广播接收器在活动之间同步多个数据的好方法。

我的场景: 我有DisplayActivity和CreateEditActivity。

在DisplayActivity上,我创建了一个广播接收器 还将监听我的CreateEditActivity上的更改 此活动包含数据列表。然后当我打开 CreateEditActivity显示DisplayActivity中的所有当前数据  将被传递到CreateEditActivity,在CreateEditActivity上,我可以创建新的数据项,如果创建成功,则可以通过广播传递此数据项。我知道仅使用片段会更容易,而且使用startActivityForResult的监听器对我来说也不适合此过程。但是我可以使用广播接收器在活动之间传递同步数据来实现此过程。希望有建议。

1 个答案:

答案 0 :(得分:0)

我认为这不是一个好主意。

在给定时间只有一个活动位于堆栈的顶部。您不应该假设您的其他活动还活着。该系统可能已将其杀死。 (您可以通过启用开发者的“不保留活动”选项进行测试。)

使用持久性存储(Room,SharedPreferences左右)会更好。您也可以尝试使用ViewModels(https://developer.android.com/topic/libraries/architecture/viewmodel)来避免处理生命周期事件的负担。

如果您不需要持久性,并且您的数据可以实现Parcelable,只需将它们通过Bundle传递给其他活动。