关于onSaveInstanceState的javadoc的渣渣翻译

时间:2023-12-31 18:27:08
/**
* Called to retrieve per-instance state from an activity before being
* killed so that the state can be restored in onCreate or
* onRestoreInstanceState (the Bundle populated by this method will be
* passed to both).
* 在被杀死前调用这个方法去处理活动的每个实例状态,可以在OnCreate或者onRestoreInstanceState
* 方法恢复(在这个方法中bundle是比较流行的传递参数的工具)
*
* This method is called before an activity may be killed so that when it
* comes back some time in the future it can restore its state. For example,
* if activity B is launched in front of activity A, and at some point
* activity A is killed to reclaim resources, activity A will have a chance
* to save the current state of its user interface via this method so that
* when the user returns to activity A, the state of the user interface can
* be restored via onCreate or onRestoreInstanceState.
* 在一个活动被杀死的时候,这个方法会被调用,这样当它在未来的时候再次返回可以保存它的状态。例如,如果活动B是在活动A
* 前面启,在一些时候活动A被杀死来回收资源,活动A有机会去保存可以通过这个方法去保存用户界面的当前状态,这样,当用户回到
* 活动A的时候,用户界面的状态可以通过onCreate或者onRestoreInstanceState方法恢复。
*
* Do not confuse this method with activity lifecycle callbacks such as
* onPause, which is always called when an activity is being placed in the
* background or on its way to destruction, or onStop which is called before
* destruction. One example of when onPause and onStop is called and not
* this method is when a user navigates back from activity B to activity A:
* there is no need to call onSaveInstanceState on B because that particular
* instance will never be restored, so the system avoids calling it. An
* example when onPause is called and not onSaveInstanceState is when
* activity B is launched in front of activity A: the system may avoid
* calling onSaveInstanceState on activity A if it isn't killed during the
* lifetime of B since the state of the user interface of A will stay
* intact.
* 不要被活动的生命周期像onPause方法给迷惑,当一个活动是被放置在后台或者它的方法销毁了,或者在被销毁之前OnStop
* 被调用的时候,onPause方法总是会被调用。一个例子就是OnPause和OnStop方法会被调用,当用户导航返回从活动B到
* 活动A就没有这个方法:这里不需要在B调用onSaveInstanceState是因为特定的实例将再也不会恢复了,所以系统避免
* 调用它。一个例子,当onPause被调用而onSaveInstanceState没有调用就是当活动B是启动在A的前面:如果活动
* A在B的生命周期内没有被杀死,系统可能会避免在活动A调用OnSaveInstanceState。因为A的用户界面的状态将会保持
* 完整。
*
* The default implementation takes care of most of the UI per-instance
* state for you by calling android.view.View.onSaveInstanceState() on each
* view in the hierarchy that has an id, and by saving the id of the
* currently focused view (all of which is restored by the default
* implementation of onRestoreInstanceState). If you override this method to
* save additional information not captured by each individual view, you
* will likely want to call through to the default implementation, otherwise
* be prepared to save all of the state of each view yourself.
* 对于大多数UI实例状态的布局的实现来看,需要注意的就是在有一个id的层级的每个布局上调用
* android.view.View.onSaveInstanceState),而且通过保存当前聚焦布局的id(所有的布局会通过onRes
* toreInstanceState方法被恢复)。如果你覆盖这个方法,通过保存额外的信息,而不是通过捕获每个单独的布局的话,
* 你可能想要通过默认的实现调用这个方法,否则可能会准备去保存每个布局、
*
* If called, this method will occur before onStop. There are no guarantees
* about whether it will occur before or after onPause.
* 如果调用,这个方法将会在onStop方法之前被调用。不过这个不保证是否它将在onPause方法之前或者之后
* 被调用

*
* Overrides: onSaveInstanceState(...) in Activity Parameters: outState
* Bundle in which to place your saved state.
*/