Android笔记:Activity的生命周期以及启动模式

来源:互联网 发布:最新前端技术编程语言 编辑:程序博客网 时间:2024/05/21 11:30

Activity生命周期

activity的生命周期:

onCreate       

onStart          
onRestart       
onResume      
onPause       
onStop       
onDestroy

上一张图,看起来更有层次感。


一些常见操作下的执行步骤:

1.新起一个页面(activity)

   onCreate()->onStart()->onResume

2.按下手机BACK键

  onPause()->onStop()->onDestory()

3.按下手机HOME键

  onPause()->onStop()

 再次进入应用页面

 onRestart()->onStart()->onResume()

4.手机锁屏/当前activity被覆盖

  onPause()

  手机解锁屏/当前actvity的覆盖状态解除

  onResume()

5.用户退出当前页面(activity)

  onPause()->onStop()->onDestory()




Activity的启动模式

在Manifest文件中会有如下的代码,其中launchMode就表示activity的启动模式。

<span style="font-family:SimSun;">  <activity            android:launchMode="singleTop"            android:name=".activity.AppDetailActivity"            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" /></span>

Activity一共有以下四种launchMode:

1.standard:标准模式,默认加载模式

2.singleTop:task顶单例模式

3.singleTask:task内单例模式

4.singleInstance:全局单单例模式

1.四大启动模式的理解

standard:每次启动一个activity都会创建一个activity并放入任务栈中,这种启动方式对系统消耗很大,性能不佳。

singleTop:如果当前activity已存在栈内并且在栈顶,则重新使用该实例,否则将创建新的activity实例并将其置于栈顶(包含两种情况,一种是activity在栈内但不在栈顶,创建新  的activity实例并将其置于栈顶。第二种情况是activity不在栈内,这种情况就很明显了,将会生成新的实例并置于栈顶)。这里再多说一句,当activity在栈顶并被重用时,将调用onNewIntent()方法,一些更新视图的操作可以在这边实现。

singleTask:如果发现所在的activity栈中有对应的activity实例,则使该activity实例之上的其他activity实例全部出瞻,使自己成为栈顶并显示出来。重复激活该activity同样会调用onNewIntent()方法。

singleInstance:在一个新栈中创建该Activity的实例,并让多个应用共享该栈中的该Activity实例。一旦该模式的Activity实例已经存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例( 会调用实例的 onNewIntent() )。其效果相当于多个应用共享一个应用,不管谁激活该 Activity 都会进入同一个应用中。


活用这几种启动模式很重要





0 1
原创粉丝点击