举一个具体的Android开发中处于停止状态下的活动但系统仍为其保存成员变量的例子
时间: 2023-11-27 17:52:18 浏览: 33
假设我们有一个活动 `MainActivity`,其中有一个成员变量 `mCount` 表示用户点击了多少次一个按钮。在 `MainActivity` 中,我们可以通过以下方式实现成员变量的保存:
```java
public class MainActivity extends AppCompatActivity {
private int mCount = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
mCount = savedInstanceState.getInt("count");
}
// 省略其他代码
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("count", mCount);
}
// 省略其他代码
}
```
在上面的代码中,我们在 `onCreate` 方法中检查 `savedInstanceState` 是否为 `null`,如果不为 `null`,则从中获取之前保存的 `mCount` 的值,并将其赋值给 `mCount`。在 `onSaveInstanceState` 方法中,我们将当前的 `mCount` 的值保存到 `outState` 中,以便在活动被销毁重建时恢复它。
现在,假设用户按下了按钮 10 次,然后按下了“后退”按钮,将 `MainActivity` 带到了后台。此时,`MainActivity` 处于停止状态,但是它的成员变量 `mCount` 的值仍然为 10。如果用户返回到 `MainActivity`,则 `onCreate` 方法将从保存的状态中恢复 `mCount` 的值,并显示为 10。