概述
1. Activity生命周期
Activity
从onCreate(Bundle)
开始,到onDestroy()
结束。
首次打开Activity
,依次调用onCraete(Bundle)
、onStart()
和onResume()
。
选择Home键,依次调用onPause()
和onStop()
。
再次打开Activity
,依次调用onRestart()
、onStart()
和onResume()
。
按返回键,依次调用onPause()
、onStop()
和onDestroy()
。
2. Activity保存参数
如果Activity
被后台关闭或者手机横竖屏切换时,都会进行参数的保存,而其他变量都将被重置。
在手机横竖屏切换时,依次调用onPause()
、onSaveInstanceState(Bundle)
、onStop()
和onDestroy()
来关闭Activity
。
接着依次调用onCreate()
、onStart()
、onRestoreInstanceState(Bundle)
和onResume()
重新打开Activity
。
在onSaveInstanceState(Bundle)
方法中,调用outState.putXX()
保存数据。在onRestoreInstanceState(Bundle)
方法中,调用savedInstanceState.getXX()
读取保存数据。
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
3. 多Activity生命周期
Activity1
打开Activity2
Activity1
调用onPuase()
方法。
Activity2
依次调用onCreate(Bundle)
、onStart()
和onResume()
方法。
Activity1
调用onStop()
方法。
Activity2
返回Activity1
Activity2
调用onPause()
方法。
Activity1
依次调用onRestart()
、onStart()
和onResume()
方法。
Activity2
才调用onStop()
和onDestroy()
方法。
4. Activity启动模式
Activity
一共有以下四种launchMode
,可在AndroidManifest.xml
中配置,默认值为"standard"
。
android:launchMode=“standard|singleTop|singleTask|singleInstance”
standard
,每次都会创建一个新的Activity
,并且在Task的顶部。
singleTop
,如果Activity
在Task的顶部,依次调用该Activity
的onPause()
、onNewIntent(Intent)
和onResume()
方法。否则创建一个新的Activity
。
singleTask
,如果Activity
在Task中,在上面的Activity
都会被销毁,依次调用onNewIntent(Intent)
、onRestart()
、onStart()
和onResume()
方法。否则创建一个新的Activity
。
如果Activity
在Task的顶部,调用onPause()
、onNewIntent(Intent)
和onResume()
方法,类似于singleTop
。singleInstance
,每次请求都会在新的Task中打开Activity
,如果Activity
已经创建,直接使用。否则就创建新的Activity
。调用方法类同于singleTask
但不会销毁原有Task中Activity
。
注意点:
standard
和不在顶部的singleTop
都会创建一个新的实例,而在顶部的singleTop
、singleTask
和singleInstance
不会创建新的实例。stardard
、singleTop
和singleTask
会在一个Task中,而singleInstance
在不同的Task中。按Home键后重新打开App,singleInstance
所在Task会消失。
5. Intent Flag
打开Activity
时,可以通过在Intent
中包含标志来修改Activity
与当前Task的关联。
几种常用的标志:
FLAG_ACTIVITY_NEW_TASK
,在一个新的Task中开启一个Activity
。FLAG_ACTIVITY_SINGLE_TOP
,如果打开的Activity
在Task的顶部,调用该Activity
的onPause()
、onNewIntent(Intent)
和onResume()
方法。FLAG_ACTIVITY_CLEAR_TOP
,如果打开的Activity
在Task中已经运行,该Activity
上面的所有Activity
都会被销毁(包括该Activity
),然后打开新的Activity
。
注意点:
- 在
Standard
模式下,FLAG_ACTIVITY_NEW_TASK
和FLAG_ACTIVITY_CLEAR_TOP
都会创建一个新的Activity
。 - 使用
FLAG_ACTIVITY_SINGLE_TOP|FLAG_ACTIVITY_CLEAR_TOP
的方式可以不用创建新的Activity
,依次调用onNewIntent(Intent)
、onRestart()
、onStart()
和onResume()
方法。
源码下载: https://github.com/nai-chen/AndroidBlog
相关文章
Android Activity简介
Android Service简介
Android ContentProvider简介
Android BroadcastReceiver简介
最后
以上就是积极银耳汤为你收集整理的Android Activity简介1. Activity生命周期2. Activity保存参数3. 多Activity生命周期4. Activity启动模式5. Intent Flag的全部内容,希望文章能够帮你解决Android Activity简介1. Activity生命周期2. Activity保存参数3. 多Activity生命周期4. Activity启动模式5. Intent Flag所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复