Android中的一些基础知识(二)
最后更新 2021-02-05 14:19 星期五 所属:
安卓教程 浏览:482
近几天在回望Android的基本知识,就把一些普遍的知识要点梳理一下,之后忘记了还可以翻出看一看。
- 简易介绍一下Activity的生命期
在API文本文档中对生命期回调函数的涵数叙述的很详尽,这儿我只是汉语翻译了一下。- onCreate:当Activity第一次被建立的情况下装运。应当在这个回调函数中做全部的复位实际操作,例如:建立View,给lists关联数据信息等。在这个涵数实行完后,一般 会装运onStart方式。Always followed by onStart()(这句话就无需汉语翻译了吧)
- onRestart:当Activity被stop后,有重启的情况下装运。Always followed by onStart()(这句话就无需汉语翻译了吧)
- onStart:当Activity对客户由此可见以前装运。当Activity要表明到前台接待(对客户由此可见)时,Followed by onResume();当Activity要掩藏时,Followed by onStop() 。
- onResume:当Activity逐渐用客户互动的情况下回调函数此方式。这时这一Activity在Activity栈的顶部。Always followed by onPause().
- onPause:当系统软件提前准备开启另一个Activity的时启用。此方式一般 被用于储存当今的数据信息、终止动漫、一些耗费cpu的实际操作等。而且应当解决的很立即。
- onStop:当Activity对客户不由此可见的情况下装运。
- onDestroy:在Activity被消毁以前装运。
Activity的这好多个性命周期函数是成对出現的:onCreate和onDestroy,onStart和onStop(Activity的View已被建立,但对客户不由此可见),onResume和onPause(Activity对客户依然由此可见)。
- 假如Activity A已经运作,如今开启Activity B,Activity A、B的生命期方式的实行次序是如何的?
在Android API中是那样onPause方式的:
Called when the system is about to start resuming another activity.
它是说当系统软件提前准备开启另一个Activity的情况下启用onPause方式。因而,此全过程应该是那样的:
根据运作程序流程,复印log,还可以认证这一的结果,log截屏以下:
-
2个Activity中间如何传递数据?
基础的数据信息能够根据Intent的putExtra()来传送,如果是别的基本数据类型,能够根据Intent的putExtras()来传送,这时改涵数里必须传送一个Bundle种类的数据信息,Bundle能够根据以下二种方法来建立
Bundle bundle=new Bundle(); bundle.putSerializable("data",obj);
或是
Bundle bundle=new Bundle();
bundle.putParcelable("data",obj);
在其中 obj各自必须承继自Serializable或是Parcelable。这儿说一下Serializable和Parcelable是差别。Serializable是Java中的,它是将数据信息以二进制的方式载入的文档中储存的,必须时就文本文件中载入。而Parcelable是Android中特有的,它是将数据信息载入到运行内存中,用的情况下立即从运行内存轻中度取,因而高效率较高,可是Parcelable不可以放很大的数据信息,由于那样会造成OOM。
- 叙述一下Service的生命期、运行方法及差别、怎样终止Service?
在Service的生命期中被启用的方式有:onCreate、onStart、onDestroy、onBind、onUnbind,显而易见比Activity的少很多。
Service的运行方法有二种:- 根据startService:
Service会历经onCreate,onStart,随后运作,在启用stopService时,会回调函数onDestroy方式,终止Service。假如此类状况下开启Service的Activity撤出前不装运stopService,次Service会一直运作,直到被系统软件收购 (当系统软件存储空间不足时)。 - 根据bindService:
Service会历经onCreate,onBind,随后运作,在启用unBindService时,会回调函数onDestroy方式,终止Service。假如此类状况下开启的Service会和开启它的Activity关联在一起,Activity消毁,Service也被消毁。
注:一个Service总是被建立一次,当它实行完onCreate方式后,装运再startService,总是实行onStart方式,装运再bindService,总是实行onBind方式。
被start的Service只有装运stopService来终止Service,被bind的Service只有装运unBindService来终止Service。另外装运了start、bind的Service则各自必须装运stopService、unBindService来终止Service。自然,因为系统软件存储空间不足,Service被收购 的状况除外。 - 根据startService: