首页 > 试题广场 >

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

[单选题]
对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行?
  • onPause()
  • onCreate()
  • onResume()
  • onStart()
推荐
onCreat():初始化操作,如:加载布局,绑定事件...
onPause():系统准备启动或恢复另一个活动时调用,所以会保存一些关键数据
onStart():活动由不可见变为可见是调用
onResume():准备好和用户进行交互时调用
A靠谱点吧,求高手解惑。
编辑于 2015-06-30 21:11:25 回复(3)
晕死,我也搞不懂了,网上很多面试题都是说的选择onStart,这里又来个onPause,被搞乱了
发表于 2016-07-13 07:33:40 回复(1)
http://developer.android.com/guide/components/activities.html
onPause:Called when the system is about to start resuming another activity. This method is typically used to commit unsaved changes to persistent data, stop animations and other things that may be consuming CPU, and so on. It should do whatever it does very quickly, because the next activity will not be resumed until it returns.
发表于 2015-04-23 17:07:13 回复(0)
当系统调用你的activity中的onPause(),从技术上讲,那意味着你的activity仍然处于部分可见的状态,当时大多数时候,那意味着用户正在离开这个activity并马上会进入Stopped state. 你通常应该在onPause()回调方法里面做下面的事情:
  • 停止动画或者是其他正在运行的操作,那些都会导致CPU的浪费.
  • 提交没有保存的改变,但是仅仅是在用户离开时期待保存的内容(such as a draft email).
  • 释放系统资源,例如broadcast receivers, sensors (like GPS), 或者是其他任何会影响到电量的资源。
  • 例如, 如果你的程序使用Camera,onPause()会是一个比较好的地方去做那些释放资源的操作。
发表于 2020-07-05 10:40:19 回复(0)
onPause() execution is very brief, and does not necessarily afford enough time to perform save operations. For this reason, you should  not  use  onPause()  to save application or user data, make network calls, or execute database transactions; such work may not complete before the method completes. Instead, you should perform heavy-load shutdown operations during  onStop()
onPause()执行的时间非常有限,它没法给出足够的时间让用户去做保存数据的操作。所以,开发人员不应该在onPause()方法中保存应用或用户的数据、发起网络请求或者操作数据库;这些操作可能还没执行完,onPause()方法就已经结束了。因此,开发人员应该把这些复杂的操作放在onStop()当中执行,
综上所述,onPause并不是最好的存储数据的地方,最好还是在onSaveInstanceState方法里面
编辑于 2017-02-20 18:27:03 回复(0)
onpause,可能因为资源问题会将activity杀死,所以在此保存
发表于 2016-12-08 14:14:43 回复(0)
但是在onPause()中保存资源和状态,会影响其整体流畅度,跳转时间或许会优点长,在onDestroy()中比较好。
发表于 2016-03-24 11:06:32 回复(0)
在网上的一些面试题就是C所以就没犹豫
发表于 2015-09-19 15:28:19 回复(1)
对的 答案是A 保存一些关键数据
发表于 2015-08-27 19:32:21 回复(0)
怎么是onstart()方法呢,onstart方法执行完毕但是用户再操作一些界面上的东西,可能会引起一些状态或数据上的改变吧,还是保存在onpause()中比较好吧。
发表于 2015-03-02 10:49:24 回复(0)
  • onCreate :表示Activity正在被创建。在这里可以做一些初始化的工作。
  • onRestart :表示Activity正在重新启动。当当前Activity从不可见重新变成可见状态。
  • onStart :表示Activity正在被启动。已经可见,但不在前台,无法交互。
  • onResume :表示Activity已经可见,并且出现在前台可以交互。
  • onPause :表示Activity正在停止。在这里可以做一些储存数据,停止动画等工作,但不能太耗时,因为必须onPause执行完成之后新的Activity才能Resume。
  • onStop :表示Activity即将停止。可以进行一些稍微重量级的回收工作,不能太耗时。
  • onDestroy :表示Activity即将被销毁。可以进行一些回收工作和最终的资源释放
发表于 2016-04-20 16:34:46 回复(1)
内存严重不足时 
onstop()不会被执行
但是OnPasue()是保证执行的 所以要在这做
发表于 2015-09-08 14:34:25 回复(4)
如果在onCreat()时候就保存状态,那么用户使用过程中的状态都没办法保存,例如各种选项,填的数据,滑动到的位置等。
只有在onPause()时候保存状态,才能保存用户最终的使用状态。
发表于 2016-07-13 09:13:21 回复(0)


  

    onCreate :表示Activity正在被创建。在这里可以做一些初始化的工作。

  

    onRestart :表示Activity正在重新启动。当当前Activity从不可见重新变成可见状态。

  

    onStart :表示Activity正在被启动。已经可见,但不在前台,无法交互。

  

    onResume :表示Activity已经可见,并且出现在前台可以交互。

  

    onPause :表示Activity正在停止。在这里可以做一些储存数据,停止动画等工作,但不能太耗时,因为必须onPause执行完成之后新的Activity才能Resume。

  

    onStop :表示Activity即将停止。可以进行一些稍微重量级的回收工作,不能太耗时。

  

    onDestroy :表示Activity即将被销毁。可以进行一些回收工作和最终的资源释放


发表于 2018-08-24 07:40:20 回复(0)
A
当前Activity失去焦点时,或者说不在是前台进程时,他都有肯能被销毁。
而onpause()是其必然执行的一个生命周期回调函数,
所以,应该在此对一些资源以及状态的操作保存
发表于 2015-09-04 10:42:40 回复(0)
感觉onstop更靠谱 首先 oncreate onstart onrestart onresume都不应该保存,保存应该发生在即将退出时。 onsaveinstancestate会在onstop之前自动保存一些数据,onpause里不应该做重量级的工作,因此onstop里保存更合理
发表于 2018-05-25 09:13:42 回复(0)
  • onCreate :表示Activity正在被创建。在这里可以做一些初始化的工作。
  • onRestart :表示Activity正在重新启动。当当前Activity从不可见重新变成可见状态。
  • onStart :表示Activity正在被启动。已经可见,但不在前台,无法交互。
  • onResume :表示Activity已经可见,并且出现在前台可以交互。
  • onPause :表示Activity正在停止。在这里可以做一些储存数据,停止动画等工作,但不能太耗时,因为必须onPause执行完成之后新的Activity才能Resume。
  • onStop :表示Activity即将停止。可以进行一些稍微重量级的回收工作,不能太耗时。
  • onDestroy :表示Activity即将被销毁。可以进行一些回收工作和最终的资源释放
发表于 2017-09-17 20:34:20 回复(0)
onpause()进行状态保存
发表于 2017-03-07 15:27:20 回复(0)
onPause()方法可以做一些轻量级的存储数据工作,所执行的操作不能太耗时,否则会影响新Activity的显示。
发表于 2016-08-28 10:37:21 回复(0)
无论何种情况,onPause都是会被执行的,而其他方法可能不被执行
发表于 2016-03-19 23:23:35 回复(0)
应该是A  用于资源保存
发表于 2015-09-22 17:34:57 回复(0)