我一直在研究Android SDK平台,有点不清楚如何保存应用程序的状态.因此,考虑到'Hello,Android'示例的这种小型重新设计:
package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
private TextView mTextView = null;
/** 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);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这对于最简单的情况就足够了,但无论我如何远离应用程序,它总是以第一条消息响应.
我确信解决方案就像覆盖onPause或类似的那样简单,但我已经在文档中捅了大约30分钟左右,并且没有找到任何明显的东西.
我一直在尝试在Android中构建一个任务列表,我希望它能够记住列表中的内容,即使应用程序已关闭.我一直在尝试使用onSaveInstanceState如下方法:
public class Main extends Activity implements OnClickListener, OnKeyListener {
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
...
if (savedInstanceState != null) {
ToDo = savedInstanceState.getStringArrayList("MyArrayList");
AA.notifyDataSetChanged();
} else {
ToDo = new ArrayList<String>(); // Initiate ToDo
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putStringArrayList("MyArrayList", ToDo);
}
// ...To-Do implementation follows
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,所以我开始阅读onSaveInstanceState,如果我理解正确,那么你实际上无法在会话之间保存数据.那么你怎么能这样做呢?