activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行
函数:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"%@",NSStringFromSelector(_cmd));
// Override point for customization after application launch.
return YES;
需要保存 此时用 A或者onStop(),onDistory()都可以。
不保存用户主动退出,而保存当本程序在后台被系统所杀掉的程序的状态。
系统杀死程序会调用onSaveInstanceState(Bundle)进行数据保存,这里保存的数据会出现在在程序下一次onStart(Bundle)这个Bundle中,onStart时可以将Bundle中数据取出。
扩展资料:
Android 程序员可以决定一个 Activity 的“生”,但不能决定它的“死”,也就是说程序员可以启动一个 Activity,但是却不能手动的“结束”一个 Activity。
当调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:告诉 Activity Manager 该 Activity 实例完成了相应的工作,可以被“回收”。
随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,同时原 Activity 被压入到栈的第二层,从 Active 状态转到 Paused 状态。
例如:从 Activity1 中启动了 Activity2,则当前处于栈顶端的是 Activity2,第二层是 Activity1。
参考资料来源:百度百科-activity
题上说是保存,目的是保存,那么就是有一个需要想清楚的问题,用户用cancle退出程序的时候需不需要保存:
1、需要保存 此时用 A或者onStop(),onDistory()都可以。
2、不需要保存 cancle退出不需要保存,那是保存什么东西呢,不保存用户主动退出,而保存当本程序在后台被系统所杀掉的程序的状态,系统杀死程序会调用onSaveInstanceState(Bundle)进行数据保存,这里保存的数据会出现在在程序下一次onStart(Bundle)这个Bundle中,onStart时可以将Bundle中数据取出。
第二种情况蛮好理解的,主动退出的程序,用户下一次打开的时候,希望是新开始的,而不是停留在上次使用的状态,而按没有主动退出的,用户就会希望是使用时最后见到的样子,为什么不是onPause呢,因为onPause后,程序运行在后台,其中某些资源或状态任然在改变中(可能),于是答案就是选的D,回答这个问题的时候,不要只关心答案,因为没有需求,所有的选项都或许是可行的。
onStop()界面被完成挡住后会调用 对应onStart()在界面重新显示时调用
你都可以在上面的方法做你的需求。
虽然也有一个方法onSaveInstanceState(Bundle),这个方法有一个参数Bundle,相当于一个HashMap,在你的Activity退出时,会调用这个方法,你可以将状态保存进去,下次onCreate(Bundle)的时候,如果上次你的Activity是因为被系统干掉而退出的,onCreate的Bundle参数就会是你在onSaveInstanceState中保存的对象,但如果上次不是被系统干掉而是正常退出的,则onCreate(Bundle)的参数为null