今天我们继续聊鸿蒙OS!
01
生命周期
在HelloWorld中我们默认的项目已经给我们创建上了默认的代码,我们发现其会自动重写一个onStart()的方法,与我们Android开发中onCreated()略有不同,看来鸿蒙OS也是有不同的生命周期的。
-
onStart()
当系统首次创建Ability实例时,触发该方法的回调。对于一个Ability实例,该回调在其生命周期过程中仅触发一次,方法执行完毕之后进入INACTIVE状态。在开发过程中必须重写该方法并配置展示的内容及其它的一些操作。
该方法类似于Android中的onCreated()方法。
-
onActive()
Ability会在进入INACTIVE状态后来到前台,之后系统回调该方法。之后Ability进入ACTIVE状态,该状态是展示到屏幕中,获取到焦点,与用户交互的状态。当用户点击返回键或跳转到其他的Ability中,之后Ability又会回到INACTIVE状态,系统会回调onInactive()。
该方法类似于Android中的onResume()生命周期。
-
onInactive()
当Ability失去焦点时,系统会回调此方法。之后系统进入INACTIVE状态,平时开发中通过灵活使用该方法实现页面失去焦点时表现得恰当的一些行为。
该方法类似于Android中的onPause()和onStop()。
-
onBackground()
当Ability对用户不可见时,系统将回调该方法并进行一些资源的释放,之后Ability进入BACKGROUND状态。平时使用时要在该方法中进行资源的释放或者一些耗时状态的保存。
-
onForeground()
当处于BACKGROUND状态的Ability仍驻留在内存中时,重新回到前台时系统将先调用该方法回调,之后Ability生命周期回到INACTIVE状态,需要在该方法中重新申请onBackground()中释放的资源,之后Ability生命周期进入到ACTIVE状态。
-
onStop()
系统要销毁时,将会触发该函数,通知用户进行资源的释放。
该生命周期类似于Android中的onDestory()。
来张图感觉更清晰一些~~~
02
布局
以往我们在Android中开发时会自动生成一个res文件,并在res目录下生成layout和drawable等相关资源文件,但是在DevEco中并不会自动生成layout文件,相比Android在xml中,DevEco提供了两种编写布局的方式。
-
在代码中创建布局
用代码创建Component和ComponentContainer对象,为这些对象设置合适的布局参数和属性值,并将Component添加到ComponterContainer中,从而创建出完整的界面。
@Override
public void onStart(Intent intent) {