原:http://blog.csdn.net/w709835509/article/details/7655240
1 import android.app.Activity; 2 import android.os.Bundle; 3 4 public class MainActivity extends Activity { 5 // 在这里进行初始化操作,如界面加载与事件绑定 6 @Override 7 public void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 if (savedInstanceState != null) { 10 // 恢复临时数据 11 String tempData = savedInstanceState.getString("key"); 12 // ... 13 } 14 } 15 16 // 在这里保存临时数据 17 @Override 18 public void onSaveInstanceState(Bundle outState) { 19 super.onSaveInstanceState(outState); 20 // 设活动A->B,A处于停止状态,可能被系统回收,此时在Back键,依然会回到A,但是会调用A的onCreate方法而不是onRestart,临时数据将不再存在,如界面数据 21 // 通过Bundle这个参数,可以将临时数据保存,各种put...;当A再被创建时,可以取出Bundle存的数据,进行相关操作,如上: 22 String tempData = "this is temp data"; 23 outState.putString("key", tempData); 24 } 25 26 // 重启调用,由停止状态变为运行状态 27 @Override 28 public void onRestart() { 29 super.onRestart(); 30 // 当知道这个进程中的活动已经可见之后,载入改变 31 } 32 33 // 在可见生存期开始时调用 34 @Override 35 public void onStart() { 36 super.onStart(); 37 } 38 39 // 活动已准备好和用户交互——在返回栈栈顶 40 @Override 41 public void onResume() { 42 super.onResume(); 43 // 据说:恢复活动所需要的任何暂停的UI更新、线程或者进程,但是当不活动的时候,就挂起它们 44 } 45 46 // 活动暂停时,活动依然可见,如此时弹出对话框,活动就处于暂停 47 @Override 48 public void onPause() { 49 // 据说:当活动不是前台的活动状态的活动时,挂起不需要更新的UI更新、线程或者CPU密集的进程。 50 super.onPause(); 51 // 即释放CPU资源,保存关键数据,但是动作一定得快,否则影响新栈顶活动 52 } 53 54 // 活动完全不可见 55 @Override 56 public void onStop() { 57 // 据说:当进程不可见的时候,挂起不需要的剩下的UI更新、线程或者处理,保存所有的编辑或者 58 // 状态改变,因为这个进程可能会被销毁(从而为其他进程释资源) 59 super.onStop(); 60 } 61 62 // 在完整生存期结束时调用 63 @Override 64 public void onDestroy() { 65 // 清空所有的资源,包括结束线程、关闭数据库连接等。 66 super.onDestroy(); 67 } 68 69 }
时间: 2024-11-05 06:28:33