沉浸式情势,生命周期和起步形式

作者: 韦德国际1946手机版  发布:2019-09-18

有关沉浸式形式,网络早已有成都百货上千大腕写的作品了。在此处只是记录一下两种达成格局及其步骤方便现在翻看、复习,赶快利用。

参照文章:Activity 全屏,沉浸式形式这一篇就够了

Android的生命周期


怎么样沉浸式方式:

在Android4.4从前,状态栏的颜色是浅紫的,无法和大家的使用融为一炉。在4.4今后,能够落到实处给状态栏设置颜色。况兼从5.0上马系统越来越完美了那10%效,可从来在核心中安装<item name="colorPrimaryDark">@color/colorPrimaryDark</item>只怕getWindow().setStatusBarColor来兑现。

误区甄别:大家常说的“沉浸式状态栏”准确的叫法应该是“沉浸式方式”(友情提示:Android开垦者官方网址,需备梯子),本人并未有“沉浸式状态栏”这种说法。
详见:

独占鳌头气象下的生命周期

图片 1

如上图所示,寻常情形下,Activity会经历以下的生命周期

1. onCreate : 与onDestroy配成对,表示Activity正在被创立,那是生命周期的第三个办法。在这么些主意中能够做一些开头化的职业(加载布局财富、伊始化Activity所急需的数目等),耗费时间的行事在异步线程上成功。

2. onRestart : 表示Activity正在重新开动。一般情形下,在此时此刻Activity从不可知重新成为可见的气象时onRestart就能够被调用。这种景色一般是由于顾客的行为所导致的,例如用户按下Home键切换来桌面大概展开了多个新的Activity(那时眼下Activity会暂停,也等于onPause和onStop被试行),接着客商有重临了这一个Activity,就能并发这种场所。

3. onStart : 与onStop配对,表示Activity正在被运营,而且将在早先。然这段日子年要留神它与onResume的区别。两个都表示Activity可知,可是onStart时Activity还正在加载其余内容,正在向我们显示,客商还不或然看出,即不能交互。

4. onResume :沉浸式情势,生命周期和起步形式。 与onPause配成对,表示Activity已经成立完毕,况兼能够起来运动了,这一年顾客已经足以寓目分界面了,并且将要与客商交互(完结该周期之后便能够响应客户的交互事件了)。

5. onPause : 与onResume配成对,表示Activity正在暂停,符合规律情状下,onStop接着就能够被调用。在卓绝情况下,若是今年顾客快捷地再回到当前的Activity,那么onResume会被调用(极端景况)。一般的话,在那么些生命周期状态下,能够做一些仓储数据、甘休动画的办事,可是不能够太耗费时间,借使是由于起步新的Activity而唤醒的该地方,那会潜移暗化到新Activity的显得,原因是onPause必须实践完,新的Activity的onResume才会试行。

6. onStop : 与onStart配成对,表示Activity就要告一段落,能够做一些不怎么重量级的回收工作,同样也不能够太耗费时间(能够比onPause稍微好一点)。

7. onDestory : 与onCreate配成对,表示Activity就要被销毁,那是Activity生命周期的末尾八个回调,大家能够做一些回收职业和最终的资源自由。

那边提议四个难点:
1.onStart和onResume、onPause和onStop从描述上来看大约,对大家的话有怎么样精神上的两样啊?
2.借使当前Activity为A,假如那时候客户张开了贰个新的活动B,那么B的onResume和A的onPause哪个人先实可以吗?

图片 2

别看大姨子啊,先看率先个难点,从骨子里的行使进程中的话,onStart和onResume、onPause和onStop看起来的确大致。但Android为何要提供类似重复的接口呢?依照上边的剖析大家得以知道,这两对回调抱有分化的意思,onStart和onStop是基于使用是或不是可知来拓宽回调的 ,onResume和onPause是依照使用是还是不是位于前台来进展回调的,除此而外,无任何显明有别。

第二个难点,大家能够从Android源码里拿走解释,A的onPause推行后B的onResume才会被调用。从另多个角度来说Android的官方文书档案中对onPause有那样一句解释:不可能在onPause里实行重量级操作,因为必得在onPause实践过后,新的Activity技巧Resume。

重申内容Android 4.4种类(API品级19)引进了四个新 SYSTEM_UI_FLAG_IMME大切诺基SIVE为标识 setSystemUiVisibility() ,能够令你的应用程序去真正的“全显示屏”。那些标识,当与重组 SYSTEM_UI_FLAG_HIDE_NAVIGATION和 SYSTEM_UI_FLAG_FULLSCREEN标记,隐敝导航栏和状态栏,令你的应用程序捕获荧屏上的具备触摸事件。

金镶玉裹福禄双全沉浸式格局步骤:
  • 什么叫沉浸式状态栏?
  • 沉浸式情势 (友情提示:Android开采者官方网址,需备梯子)

分外情形下的生命周期

图片 3

onSaveInstanceState艺术只会并发在 Activity被百般终止的气象下,它的调用机遇是在 onStop之前,它和onPause主意未有既定的时序关系,也许在它从前,也或许在它之后。当 Activity被重新成立的时候, onRestoreInstanceState会被回调,它的调用机缘是 onStart从此今后。系统只会在 Activity将要被销毁并且有机会再一次展现的动静下才会去调用 onSaveInstanceState格局。当 Activity在相当意况下必要再一次创建时,系统会默以为大家保留当前 Activity的视图结构,并且在 Activity重启后为我们回复那么些数量,比方文本框中客户输入的多寡、listview滚动的职位等,那些view相关的状态系统都会暗中认可为我们还原。具体指向某二个view系统能为大家回复哪些数据能够查看 view的源码中的onSaveInstanceStateonRestoreInstanceState方法。
Demo

@Override
protected void onSaveInstanceState(Bundle outState) {
 super.onSaveInstanceState(outState);
 KLog.d(getClass().getSimpleName(),"onSaveInstanceState");
 outState.putString(STATE, "test");
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
 super.onRestoreInstanceState(savedInstanceState);
 KLog.d(getClass().getSimpleName(),"[onRestoreInstanceState]: " 
                   savedInstanceState.getString(STATE));
}

当大家旋转显示器过后,能够见见如下的log:

10-23 22:50:56.032 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onCreate
10-23 22:50:56.036 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onStart
10-23 22:50:56.040 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onResume
10-23 22:51:05.456 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onPause
10-23 22:51:05.460 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onSaveInstanceState
10-23 22:51:05.460 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onStop
10-23 22:51:05.460 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onDestroy
10-23 22:51:05.484 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onCreate
10-23 22:51:05.496 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onStart
10-23 22:51:05.496 1613-1613/com.hugo.demo.activitydemo D/MainActivity: [onRestoreInstanceState]: test
10-23 22:51:05.496 1613-1613/com.hugo.demo.activitydemo D/MainActivity: onResume

onSaveInstanceState其间保存的test,确实在重新创设活动的时候在onRestoreInstanceState被还原出来了。

Android开拓方式探寻上有那样一句话:

有关保存和回复 View 的档案的次序结构,系统专业流程是: Activity 十分终止, Activity 调用 onSaveInstanceState 去保存数据,然后 Activity 会委托 Windows 去保存数据,接着 Window 再托付它下面的顶层容器去保存数据。顶层容器是贰个 ViewGroup ,一般的话它很或者是 DectorView ,最终顶层容器再去通知它的子成分保存数据。(那是一种委托观念,上层委托下层,父容器委托子成分去处监护人务,如 View 的绘图进程,事件分发都以利用类似的考虑)


1、让景况栏透明

1.1)分别在values、values-19、values-21 自定义同名的Theme,在Manifest中设置Activity的Theme1.2)通过java代码达成


Fragment的生命周期

  • 使用非粘性浸入

本文由韦德国际1946发布于韦德国际1946手机版,转载请注明出处:沉浸式情势,生命周期和起步形式

关键词: android 模式 伟德国际娱乐

上一篇:Studio常用神速键,的连忙键
下一篇:没有了