有些软件在editText输入用户名后,比如输入abc,按下home键,然后从通知再进入,发现abc还存在,并且不重复创建activity,这是怎么做到的呢》?是什么原理呢?
解决方案 »
- 关于android拨号程序的一些问题
- 关于view的OnMesure(int w , int h)方法,求大虾相助!
- 小白求救:开发网站或者oa等网站或系统的移动版 需要改程序吗》?》?
- The specified child already has a parent
- android MediaPlayer 播放视频 调用stop()方法后 再调用getCurrentPosition()方法返回值不为0
- 关于做新浪微博项目的一个问题~~~紧急~~求教~~~!!!
- android同时上传文件和键值对
- gridview 滚动
- 获取ProgressBar时出现空指针异常,大神们指教啦
- 统计arraylist数据遇到的问题
- 奇怪的include改动无效问题。
- android 2.2 如何退出程序
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.widget.EditText;/*
* 关于保存状态,还有2个方法可以参考:onSaveInstanceState(Bundle)保存状态
* onRestoreInstanceState,回复状态,但根据文档,这2个方法并不保证一定会被调用
* 因此建议还是使用onCreate()和onPause()配合来完成,并将其保存到永久存储上(文件或者数据库)
*/public class SavedStatusActivity extends Activity {
EditText et1, et2;
SharedPreferences preferences; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.saved_status);
// 取得EditText对象
et1 = (EditText) findViewById(R.id.editText1);
// 取得私有的SharedPreferences,它的作用就在于保存EditText1的内容
preferences = this.getPreferences(MODE_PRIVATE);
// 尝试从中读取数据
String savedValue = preferences.getString("ET1_VALUE", "");
// 将其放到et1中
et1.setText(savedValue);
} @Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
} @Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
} @Override
protected void onPause() {
// TODO Auto-generated method stub
// 在暂停时(退出该Activity)的时候,应该将需要保留的数据保存到
// SharedPreferences或者SQLite中,这里是SharedPrefenrences
Editor editor = preferences.edit();
editor.putString("ET1_VALUE", et1.getText().toString());
editor.commit();
super.onPause();
} @Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
}
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText android:id="@+id/editText1" android:layout_width="match_parent"
android:layout_height="wrap_content" android:hint="退出后会保存状态">
<requestFocus></requestFocus>
</EditText>
<EditText android:id="@+id/editText2" android:layout_width="match_parent"
android:layout_height="wrap_content" android:hint="退出后不会保持状态"></EditText>
</LinearLayout>
在pause之前要保存一下activity的状态和数据。
这样,返回之后,就可以再获取到之前的状态了。
样例,就参考3楼代码。
再回来的时候,Activity的生命周期是:onRestart-->onStart-->onResume
Activity并没有被销毁,所以不会重新再创建