使用静态 methods/structures 在活动之间传递数据
Using static methods/structures to pass data between activities
如果我想在同一应用程序中的活动之间传递数据,a) 我可以使用 Intent
或 b) 使用数据库(在 Intent
中传递 id 而不是完整的数据.
但我也可以使用 c) a class 和两个活动都可以以 store/fetch 方式访问的静态数据结构。
如果我不关心应用重启时数据的持久性,使用 (c) 有什么缺点?
最大的缺点是 Android OS 可以随时终止您的进程。重新创建流程时,Android 将重新创建所有恢复其状态的活动。
由于 Android 不知道应该如何处理您的静态数据,您将丢失它并且 Activity B 将处于不一致状态。
我举个例子更清楚:
- Activity A 启动
- ActivityA 上的一个按钮被点击
- 启动前正在填充静态数据结构Activity B
- Activity B 已启动并可以访问静态数据
- Android OS 自动终止你的进程
- ActivityA和ActivityB恢复
- 静态数据结构没有被填充,因为它们会在 Activity A 上的按钮被点击时被填充
- Activity B 处于不一致状态
如果我想在同一应用程序中的活动之间传递数据,a) 我可以使用 Intent
或 b) 使用数据库(在 Intent
中传递 id 而不是完整的数据.
但我也可以使用 c) a class 和两个活动都可以以 store/fetch 方式访问的静态数据结构。
如果我不关心应用重启时数据的持久性,使用 (c) 有什么缺点?
最大的缺点是 Android OS 可以随时终止您的进程。重新创建流程时,Android 将重新创建所有恢复其状态的活动。
由于 Android 不知道应该如何处理您的静态数据,您将丢失它并且 Activity B 将处于不一致状态。
我举个例子更清楚:
- Activity A 启动
- ActivityA 上的一个按钮被点击
- 启动前正在填充静态数据结构Activity B
- Activity B 已启动并可以访问静态数据
- Android OS 自动终止你的进程
- ActivityA和ActivityB恢复
- 静态数据结构没有被填充,因为它们会在 Activity A 上的按钮被点击时被填充
- Activity B 处于不一致状态