关于ANDROID task运行机制
来源:互联网 发布:中国人工智能政策 编辑:程序博客网 时间:2024/04/29 17:05
1、 什么是 Task ?
Task 翻译成中文叫做任务,那么什么是任务呢?
Task 就是一个栈 (A task is a stack of activities.) ,这个栈里面存放了很多 Activity ,它遵循着后进先出的原则。
栈有两个动作:压栈(把对象压入到栈当中)和弹栈(把栈中的第一个对象从栈里面拿出来)。
2、 Task 运行过程
示例 1 :创建一个 Android 应用程序,编写 3 个 Activity(FirstActivity 、 SecondActivity 、 ThirdActivity) ,每个 Activity 都有一个按钮,当点击 FirstActivity 的 Button 按钮时,跳转到 SecondActivity ,当点击 SecondActivity 的 Button 按钮时,跳转到 ThirdActivity ,当再点击 ThirdActivity 的 Button 按钮时,调用 Android 自带的一个发送短信的应用程序。(程序已打包上传至附件中,有需要的可下载进行查看运行)
运行程序,观察 Task 运行的过程。
这个应用程序的 FirstActivity 、 SecondActivity 、 ThirdActivity 以及 Android 自带的发送短信的应用程序就组成了一个 Task 。
Task 运行过程讲解:
1) 应用程序启动之后,运行的第一个 Activity ( FirstActivity ),该 FirstActivity 对象被压入到 Stack 当中。
2) 当点击了 FirstActivity 的按钮之后,启动第二个 Activity ( SecondActivity ),该 SecondActivity 对象被压入到 Stack 当中。
注:现在 FirstActivity 处在 Stack 的底部, SecondActivity 处于 Stack 的顶部,手机永远显示的都是 Stack 顶部的元素,所以现在界面显示的是 SecondActivity 。
3) 当点击了 SecondActivity 的按钮之后,启动第三个 Activity ( ThirdActivity ),该 ThirdActivity 对象被压入到 Stack 当中。
注:现在 FirstActivity 处在 Stack 的底部, ThirdActivity 处于 Stack 的顶部,手机永远显示的都是 Stack 顶部的元素,所以现在界面显示的是 ThirdActivity 。
4) 最后点击 ThirdActivity 的按钮之后,启动 Android 自带的发送短信的应用程序( SMS Activity 对象),该 SMS Activity 对象被压入到 Stack 当中。
注:同理,现在 FirstActivity 仍然处在 Stack 的底部, SMS Activity 对象处于 Stack 的顶部,所以现在界面显示的是 SMS Activity 对象的界面。
(以上执行的是压栈操作,现在我们点击返回来看弹栈操作)
5) 点击模拟器右侧的 Back 按钮之后,这个时候 SMS Activity 对象被从栈中弹出来。 SMS Activity 对象被弹出来之后, ThirdActivity 又变成栈的顶部,当前程序显示的就是 ThirdActivity 的内容。(因为栈遵循后进先出的原则)
6) 当再点击 Back 按钮之后, ThirdActivity 被从栈中弹出来,程序显示 SecondActivity 的内容。
7) 再点击 Back 按钮, SecondActivity 被从栈中弹出来,程序显示 FirstActivity 的内容。
注意:
a )、现在在 SecondActivity 中的 startActivity(intent) 后调用 finish() 方法。将程序运行到 ThirdActivity 后,点击 Back 按钮,此时,程序并没有返回到 SecondActivity ,而是直接返回到 FirstActivity 。
原因:由于在点击 SecondActivity 的按钮之后,它启动了 ThirdActivity ,同时将 SecondActivity 销毁掉了,这个时候栈里面只有 ThirdActivity 和 FirstActivity ,当再点击 Back 的时候它就不是回到 SecondActivity 而是回到 FirstActivity 了。
b )、在整个栈当中, Activity 只有弹出和压入这两个动作,是不允许调换 Activity 之间的顺序的。
3、 Task 对的作用
在同一个 Task 里面的 Activity 被组织成同一个单元(可以将不同应用程序的 Activity 组织在一起)。
Task 翻译成中文叫做任务,那么什么是任务呢?
Task 就是一个栈 (A task is a stack of activities.) ,这个栈里面存放了很多 Activity ,它遵循着后进先出的原则。
栈有两个动作:压栈(把对象压入到栈当中)和弹栈(把栈中的第一个对象从栈里面拿出来)。
2、 Task 运行过程
示例 1 :创建一个 Android 应用程序,编写 3 个 Activity(FirstActivity 、 SecondActivity 、 ThirdActivity) ,每个 Activity 都有一个按钮,当点击 FirstActivity 的 Button 按钮时,跳转到 SecondActivity ,当点击 SecondActivity 的 Button 按钮时,跳转到 ThirdActivity ,当再点击 ThirdActivity 的 Button 按钮时,调用 Android 自带的一个发送短信的应用程序。(程序已打包上传至附件中,有需要的可下载进行查看运行)
运行程序,观察 Task 运行的过程。
这个应用程序的 FirstActivity 、 SecondActivity 、 ThirdActivity 以及 Android 自带的发送短信的应用程序就组成了一个 Task 。
Task 运行过程讲解:
1) 应用程序启动之后,运行的第一个 Activity ( FirstActivity ),该 FirstActivity 对象被压入到 Stack 当中。
2) 当点击了 FirstActivity 的按钮之后,启动第二个 Activity ( SecondActivity ),该 SecondActivity 对象被压入到 Stack 当中。
注:现在 FirstActivity 处在 Stack 的底部, SecondActivity 处于 Stack 的顶部,手机永远显示的都是 Stack 顶部的元素,所以现在界面显示的是 SecondActivity 。
3) 当点击了 SecondActivity 的按钮之后,启动第三个 Activity ( ThirdActivity ),该 ThirdActivity 对象被压入到 Stack 当中。
注:现在 FirstActivity 处在 Stack 的底部, ThirdActivity 处于 Stack 的顶部,手机永远显示的都是 Stack 顶部的元素,所以现在界面显示的是 ThirdActivity 。
4) 最后点击 ThirdActivity 的按钮之后,启动 Android 自带的发送短信的应用程序( SMS Activity 对象),该 SMS Activity 对象被压入到 Stack 当中。
注:同理,现在 FirstActivity 仍然处在 Stack 的底部, SMS Activity 对象处于 Stack 的顶部,所以现在界面显示的是 SMS Activity 对象的界面。
(以上执行的是压栈操作,现在我们点击返回来看弹栈操作)
5) 点击模拟器右侧的 Back 按钮之后,这个时候 SMS Activity 对象被从栈中弹出来。 SMS Activity 对象被弹出来之后, ThirdActivity 又变成栈的顶部,当前程序显示的就是 ThirdActivity 的内容。(因为栈遵循后进先出的原则)
6) 当再点击 Back 按钮之后, ThirdActivity 被从栈中弹出来,程序显示 SecondActivity 的内容。
7) 再点击 Back 按钮, SecondActivity 被从栈中弹出来,程序显示 FirstActivity 的内容。
注意:
a )、现在在 SecondActivity 中的 startActivity(intent) 后调用 finish() 方法。将程序运行到 ThirdActivity 后,点击 Back 按钮,此时,程序并没有返回到 SecondActivity ,而是直接返回到 FirstActivity 。
原因:由于在点击 SecondActivity 的按钮之后,它启动了 ThirdActivity ,同时将 SecondActivity 销毁掉了,这个时候栈里面只有 ThirdActivity 和 FirstActivity ,当再点击 Back 的时候它就不是回到 SecondActivity 而是回到 FirstActivity 了。
b )、在整个栈当中, Activity 只有弹出和压入这两个动作,是不允许调换 Activity 之间的顺序的。
3、 Task 对的作用
在同一个 Task 里面的 Activity 被组织成同一个单元(可以将不同应用程序的 Activity 组织在一起)。
- 关于ANDROID task运行机制
- 关于ANDROID task运行机制
- 关于android recent task的一些想法
- Android中关于Task的一些认识
- 关于Android 中的Activity,Application和Task
- Map task 内部实现原理和运行机制
- 关于AsyncTask运行机制
- android task
- Android Task:
- Android Task
- Android应用程序运行机制解析
- Android基础和运行机制
- Android基础和运行机制
- Android基础和运行机制
- Android剖析和运行机制
- Android基础和运行机制
- android 架构及运行机制
- Android剖析和运行机制
- 2012年,oracle的java现状报告中,关于未来的部分
- 如何用css控制浏览器滚动条
- 打开键盘代码
- 文本中Mac键盘上的各种特殊符号
- IOS细节之付费接口In-App Purchases开发问题
- 关于ANDROID task运行机制
- 等待是我不可更改的宿命_伤感日志
- 数字记录
- ASCII码表
- 十大监视SQL Server性能的计数器
- 陌小尘最新推荐伤感日志:你爱或不爱,爱就在那里
- PHP:IP转换整形(ip2long)
- JAVA面试题-03
- [SGU]130. Circle