cot*_*aws 6 lifecycle android android-activity
这似乎没有很好地记录或我错过了,所以在我运行一堆我自己的测试之前,我想知道是否有人已经知道其中一些问题的答案.
首先,当我说"申请"时,我指的是扩展Application课程. http://developer.android.com/reference/android/app/Application.html
我的问题如下,有些是相关的.
当用户从应用程序中离开活动并转到另一个应用程序的活动时,应用程序是否会以某种方式暂停,即使它没有onPause()?或者它是否继续不受影响直到它的所有活动都被销毁?
应用程序什么时候停止?当它的所有活动都被销毁?
是否有可能在没有应用程序实例的情况下运行其中一个应用程序活动,或者如果有其中一个活动,应用程序类是否总是存在?
如果应用程序上正在运行某个进程,并且它的所有活动都已暂停,那么该进程是否会继续运行?
应用程序是以任何方式通过轮换实现的,还是轮换只会改变活动?
谢谢
如你所说,应用程序没有onPause,因此应用程序没有任何反应.当在你的Activity中调用onPause时没有什么特别的事情发生,你的Activity继续运行并且可以做任何想做的事情,包括运行新线程,定时器可以关闭等等.
我相信你要问的是:什么时候销毁一个应用程序,什么时候应用程序中的onTerminate方法被调用?答案很难确定并且取决于系统,当所有活动都被调用onDestroyed时,它不一定会发生.事实上,即使调用onDestroy,您的活动也不一定是垃圾回收.当系统内存不足时,您的应用程序所在的进程可能会被终止,这意味着您的应用程序将消失; onTerminate可能会或可能不会被调用.那时所有的活动,服务等都被杀死了.
应用程序始终首先实例化,Activity必须具有关联的应用程序,就像您在AndroidManifest.xml中定义它一样.
进程永远不会在Android中暂停,onPause方法实际上并没有真正做任何事情,只是告诉你在应用程序中暂停一些事情.除此之外,进程一直在消失,你的线程继续运行,即使主线程接收Intents与BroadcastReceiver.
Application在Application的onConfigurationChanged()中获取旋转回调.我不确定您是否可以禁用它,因为AndroidManifest.xml中的应用程序标签不支持configChanges属性.
与Application的一个很好的比较是你的任何类中的静态字段.只要应用程序没有销毁过程,静态字段就会存在.所有活动,服务等都可以访问静态字段(假设静态字段是公共的),就像您的应用程序一样.
祝好运!雅各
| 归档时间: |
|
| 查看次数: |
1811 次 |
| 最近记录: |