从大二开始学习Android已经有一两年了,中间断断续续半年玩游戏半年学习的循环,意志力还是差

如今大四出来找实习发现自身Android基础知识还是太薄弱,故决定强化基础知识

这篇博客开始记录阅读《Android 开发艺术探索笔记》这本书的一些笔记,也是锻炼自身的语言组织能力(非常差劲的语言组织能力。。)

第一次写博客,排版啥的就先忽略把。。。


在AndroidManifest.xml中使用android:launchMode为Activity组件设置启动方式

Activity有4 种启动方式

standard:

标准启动方式,也是Activity的默认启动方式,打开activity时,都会创建一个新的Acitivity实例放入栈顶。

singleTop:

栈顶复用模式,如果要启动的Activity在任务栈中已经有一个实例并且在栈顶,则不会创建新的实例,而是调用实例的onNewIntent方法,如果没有,则行为和标准方式一样,创建新实例放入栈顶

singleTask:

栈内复用模式,分为两个情况

1,要启动的Acitivty的想要的任务栈(taskAffinity属性)已存在,则会先看这个栈中是否已存在这个Activity的实例,如果存在则会把在这个实例上方的Acitivty移除,成为栈顶Acitivity,并调用onNewIntent方法,如果不存在,则新建实例放入栈顶。

定义3个Activity:A,B,C,B和C的LaunchMode都为singleTask且设置taskAffinity属性相同都为"com.sanron.task1"


启动A后,在B中点击按钮启动C,再在C中点击按钮启动B,使用adb shell dumpsys activity查看栈信息


可以看到此时有两个任务栈,一个是以包名com.sanron.example为名称,含有A,一个以taskAffinity属性com.sanron.task1为名称,含有B

再看Log,调用了B的onNewIntent

2,想要的任务栈不存在,则新建一个任务栈,并创建新实例放入这个新任务栈



更多相关文章

  1. Android中Image的简单实例详解
  2. android XML解析方式
  3. Android应用中通过AIDL机制实现进程间的通讯实例
  4. ESC/POS指令集在Android设备上使用实例(通过socket)
  5. Android Diaolog与AlertDialog用法实例
  6. android开发的3种方式
  7. Android 数据存储五种方式使用与总结
  8. Android 之 数据存储方式
  9. Android中使用Serializable和Parcelable实现序列化详解(含实例)

随机推荐

  1. 福利!!!你想要的Android、Java、Python、QT
  2. Android中文资源站专栏:五个好用的日常软
  3. React Native接入现有Android原生工程并
  4. Android面试看重你什么?(推荐!!!)
  5. Android获取设备唯一ID
  6. android布局基础及范例:人人android九宫格
  7. Android底部弹出iOS7风格对话选项框
  8. Android用户看过来,免ROOT和顽固后台拜拜
  9. 让 Android(安卓)可以识别BMP图片文件,且
  10. 第一行代码笔记1