0

我目前设置了一个活动的 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() 方法中包含的所有行。我不想从可能突然停止的方法中执行数据保存功能!

我的想法在这里错了吗?我的恐惧是非理性的吗?如果是这样,我应该怎么做?

顺便说一下,这是我的应用程序截图: 1 2 3 4

4

1 回答 1

0

谢谢,卢克斯普罗格。经过一番阅读,我想我现在可以更好地信任活动生命周期。我将在 onCreate 中实现设置,在 onResume 中加载,在 onPause 中保存!希望这是正确的。

现在我需要的只是一些关于设置活动和片段的正确方法的建议。我只需要一些一般的经验法则来决定何时以及何时不开始新活动,或者使用片段是否更好。

于 2013-09-09T01:33:15.377 回答