activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

参考技术A 最好是保存在生命周期的onStart函数中进行。

题上说是保存,目的是保存,那么就是有一个需要想清楚的问题,用户用cancle退出程序的时候需不需要保存:
1、需要保存 此时用 A或者onStop(),onDistory()都可以。
2、不需要保存 cancle退出不需要保存,那是保存什么东西呢,不保存用户主动退出,而保存当本程序在后台被系统所杀掉的程序的状态,系统杀死程序会调用onSaveInstanceState(Bundle)进行数据保存,这里保存的数据会出现在在程序下一次onStart(Bundle)这个Bundle中,onStart时可以将Bundle中数据取出。

第二种情况蛮好理解的,主动退出的程序,用户下一次打开的时候,希望是新开始的,而不是停留在上次使用的状态,而按没有主动退出的,用户就会希望是使用时最后见到的样子,为什么不是onPause呢,因为onPause后,程序运行在后台,其中某些资源或状态任然在改变中(可能),于是答案就是选的D,回答这个问题的时候,不要只关心答案,因为没有需求,所有的选项都或许是可行的。
参考技术B onPause()界面被挡住后会调用 对应onResume()在界面重新显示时调用
onStop()界面被完成挡住后会调用 对应onStart()在界面重新显示时调用
你都可以在上面的方法做你的需求。
虽然也有一个方法onSaveInstanceState(Bundle),这个方法有一个参数Bundle,相当于一个HashMap,在你的Activity退出时,会调用这个方法,你可以将状态保存进去,下次onCreate(Bundle)的时候,如果上次你的Activity是因为被系统干掉而退出的,onCreate的Bundle参数就会是你在onSaveInstanceState中保存的对象,但如果上次不是被系统干掉而是正常退出的,则onCreate(Bundle)的参数为null本回答被提问者采纳

个人冲刺——第七天

1.昨天做了什么?

解决在一个单实例的对象中,有个注册监听器的行为,传给这个单实例对象的context,会出现:receiver leak的错误的问题,继续实现关注的功能,用户可以对感兴趣的消息进行关注,以便获取该消息的最新动态

2.今天要做什么?

弄明白退出activity 对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行,继续实现关注的功能,用户可以对感兴趣的消息进行关注,以便获取该消息的最新动态

3.遇到什么困难?

退出activity 对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行

 

以上是关于activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行的主要内容,如果未能解决你的问题,请参考以下文章

个人冲刺——第八天

Android Fragment使用 Activity, Fragment, WebView的状态保存和恢复

如果 Activity 被操作系统杀死,我们如何检索保存的状态?

android对应生命周期中应该释放哪些资源

Activity的生命周期以及启动方式

android activity状态的保存