Android的Activity一共有4中启动模式分别是:standard、singleTop、singleTask、singleInstance。
在介绍这四种模式之前先说下Android中的任务栈(TaskStack)的概念:栈大家都知道,是一种后进先出的数据结构。什么是后进先出呢:
下图模拟Android程序界面:
| 这是MainActivity(TextView) |
| 启动MainActivity(Button1) |
| 启动SecondActivity(Button2) |
| 这是SecondActivity(TextView) |
| 启动MainActivity(Button1) |
| 启动SecondActivity (Button2) |
下图模拟任务栈。
当Android程序启动的时候,MainActivity最先出现,所以任务栈中它是第一个如:任务栈图一
任务栈图一
| Main ① |
当点击了【MainActivity程序界面模拟】中的【启动MainActivity(Button1)】的时候,MainActivity再次出现在了任务栈中如:任务栈图二
任务栈图二
| Main ② |
| Main ① |
当点击了【MainActivity程序界面模拟】中的【启动SecondActivity (Button2)】的时候,SecondActivity出现在了任务栈中如:任务栈图三
任务栈图三
| Second ③ |
| Main ② |
| Main ① |
任务栈中SecondActivity是最后进入的,所以显示在界面上的也是它,当我们点击返回键的时候,也是它最先被销毁。(后进先出)如:任务栈图四
任务栈图四
| Main ② |
| Main ① |
当然再次点击返回键,任务栈中的MainActivity也被一一销毁,直到退出应用程序,返回到主屏幕。如:任务栈图五
任务栈图五
| |
任务栈已经讲完了,同时这也是Activity种的standard模式。
接下来开始说下其他三种模式
singleTop
| 这是MainActivity(TextView) |
| 启动MainActivity(Button1) |
| 启动SecondActivity(Button2) |
| 这是SecondActivity(TextView) |
| 启动MainActivity(Button1) |
| 启动SecondActivity (Button2) |
任务栈图六
| Main ① |
任务栈图七
| Second ② |
| Main ① |
任务栈图八
| Main ③ |
| Second ② |
| Main ① |
| Second ④ |
| Main ③ |
| Second ② |
| Main ① |
singleTask
| 这是MainActivity(TextView) |
| 启动MainActivity(Button1) |
| 启动SecondActivity(Button2) |
| 这是SecondActivity(TextView) |
| 启动MainActivity(Button1) |
| 启动SecondActivity (Button2) |
任务栈图十
| Main ① |
任务栈图十一
| Second② |
| Main ① |
任务栈图十二
| Main ③ |
| Second② |
| Main ① |
| Main④ |
| Main ③ |
| Second ② |
| Main ① |
| Second ② |
| Main ① |
| Main① |
是不是和你想的一样呢,返回到了MainActivity界面,再次点击返回键则退出应用程序。这就是 singleTask
singleInstance
| 这是MainActivity(TextView) |
| 启动MainActivity(Button1) |
| 启动SecondActivity(Button2) |
| 这是SecondActivity(TextView) |
| 启动MainActivity(Button1) |
| 启动SecondActivity (Button2) |
任务栈图十六
| Main ① |
任务栈图十七
| Main② |
| Main ① |
| 新任务栈 | 原任务栈 |
| Main② | |
| Second① | Main① |
| 新任务栈 | 原任务栈 |
| Main③ | |
| Main② | |
| Second① | Main① |
| 新任务栈 | 原任务栈 |
| Main④ | |
| Main③ | |
| Main② | |
| Second | Main① |
| 新任务栈 | |
| Second |
本文详细介绍了Android中Activity的四种启动模式:standard、singleTop、singleTask和singleInstance,通过模拟程序界面和任务栈,解释了每种模式下的行为特点。
349

被折叠的 条评论
为什么被折叠?



