我目前设置了一个活动的 onCreate() 方法来捕获它所做的第一件事。Intent 总是有一个额外的 int “ACTIONCODE”,它决定了 Activity 应该做什么。
活动 A 可能希望活动 Z 第一次设置变量,因此它调用 startActivity(includedIntent) ,它有一些额外的 int ActivityZ.SET_UP_FIRST_TIME (这是活动 Z 中的一个常量)。活动 B 可能希望更改 a 周围的变量位,所以它做了一个 startActivity(includedIntent) ,其意图现在包括一个额外的 int ActivityZ.CHANGE_VARIABLES 以及其他数据来更改这些变量。
Activity Z 可能只是一堆显示其变量的文本视图。根据从 getIntent() 接收到的 ACTIONCODE,它会按照需要执行操作。
我觉得我这样做对我的应用程序中的活动有更多的控制,但我担心这可能是一个非常幼稚和低效的实现。我基本上不信任(也不完全理解)onStart()、onResume()、onPause() 和 onStop()。据我所知,不能保证活动总是返回到 onResume()。当它处于 onPause() 或 onStop() 状态时,它可能已被系统杀死或完全销毁,因此只会再次返回到 onCreate()。这是我唯一信任的方法。
我什至从 onCreate() 中保存了所有数据。为什么?我听说如果一个活动在 onPause() 或 onStop() 中,它很容易被杀死,甚至可能无法完成覆盖的 onPause() 或 onStop() 方法中包含的所有行。我不想从可能突然停止的方法中执行数据保存功能!
我的想法在这里错了吗?我的恐惧是非理性的吗?如果是这样,我应该怎么做?
顺便说一下,这是我的应用程序截图: