现在的位置: 首页 > 移动开发 > 正文

Android 报错 Activity 状态

2019年09月12日 移动开发 ⁄ 共 1785字 ⁄ 字号 评论关闭
文章目录

我近期学习了一下android sdk,不太清楚里面的一些原理,如何保存应用程序的状态,看下面hello的小例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package
com.android.hello;
import
android.app.Activity;
import
android.os.Bundle;
import
android.widget.TextView;
public
class
HelloAndroid extends
Activity {
/** Called when the activity is first created. */
@Override
public
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mTextView =
new TextView(this);
if
(savedInstanceState == null) {
mTextView.setText("Welcome to HelloAndroid!");
}
else {
mTextView.setText("Welcome back.");
}
setContentView(mTextView);
}
private
TextView mTextView = null;
}

这个android 小例子应该是每个人都开发过的,我每次关闭程序再打开是都是给我显示第一个Welcome to HelloAndroid ,我想在第二次访问的时候能够显示 Welcome back,我该如何处理?

处理方法

你需要重写 onSaveInstanceState(Bundle savedInstanceState),把你想要保存的状态写入到 Bundle 中,如下

1
2
3
4
5
6
7
8
9
10
11
12
@Override
public
void
onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// Save UI state changes to the savedInstanceState.
// This bundle will be passed to onCreate if the process is
// killed and restarted.
savedInstanceState.putBoolean("MyBoolean",
true);
savedInstanceState.putDouble("myDouble",
1.9);
savedInstanceState.putInt("MyInt",
1);
savedInstanceState.putString("MyString",
"Welcome back to Android");
// etc.
}

Bundle 的本质是键值对的方式存储,你可以通过 onCreate()和 onRestoreInstanceState() 或的对应的值

1
2
3
4
5
6
7
8
9
10
@Override
public
void
onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Restore UI state from the savedInstanceState.
// This bundle has also been passed to onCreate.
boolean
myBoolean = savedInstanceState.getBoolean("MyBoolean");
double
myDouble = savedInstanceState.getDouble("myDouble");
int
myInt = savedInstanceState.getInt("MyInt");
String myString = savedInstanceState.getString("MyString");
}

您通常会使用这项技术来存储实例的值的应用程序(选择,未保存的文本等)。

原文地址:http://www.itmmd.com/201410/38.html

该文章由 萌萌的IT人 整理发布,转载须标明出处。            

抱歉!评论已关闭.