`
byandby
  • 浏览: 1696356 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android Task简介

阅读更多
Task

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 组织在一起)。


分享到:
评论

相关推荐

    Android Task 进程与线程详解

    "Android Task 进程与线程详解" Android 中的 Task 概念是指一组以栈的模式聚集在一起的 Activity 组件集合,具有潜在的前后驱关联。Task 的主要作用是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种...

    android task

    详细讲解android task以及android四种加载模式。 测试及原理说明结合。

    Android Task Manager Download

    《Android Task Manager 下载与解析》 Android Task Manager是一款用于管理Android设备上运行任务和进程的应用工具,它允许用户查看并控制手机上的应用程序及其后台进程。在深入探讨这个话题之前,我们先了解一下...

    Android Timer Task Demo

    Log.d("MyTimerTask", "Task executed at " + new Date()); } } ``` 在`run()`方法中,你可以添加任何需要定时执行的操作,例如更新UI、发送网络请求等。不过要注意,由于`run()`方法在后台线程执行,如果需要...

    Android Task Manager 实做

    在Android系统中,任务管理器(Task Manager)是至关重要的组件,它负责管理和调度应用程序的任务,确保系统的稳定运行。本文将深入探讨如何实现一个自定义的Android Task Manager,以及涉及的相关技术点。 首先,...

    Android-TaskScheduler一个简洁实用方便的Android异步处理库

    **Android TaskScheduler:高效异步任务处理库** 在Android应用开发中,为了提供良好的用户体验,开发者经常需要在后台执行耗时操作,如网络请求、数据处理等,这就涉及到了异步处理。`TaskScheduler`是一个专为...

    android启动优化的操作,通过启动器task来进行启动优化

    本文将深入探讨通过启动器Task进行Android启动优化的设计思路和技术实现。首先,我们需要理解什么是启动器Task以及它在Android系统中的作用。 启动器Task(Launcher Task)是Android系统中负责启动应用程序主界面的...

    Android task和back stack

    即使那个activitie可能来自不同的应用,Android也靠着把两个activity保存在同一个任务中来实现这种无缝的用户体验. 一个任务是用户在执行某种工作时所交互的activitie的集合.activitie们放置在一个栈("后退栈")中,...

    android activity和task

    在Android操作系统中,Activity和Task是两个非常关键的概念,它们共同构成了应用的用户界面和任务管理机制。Activity可以理解为用户可以看到和交互的屏幕,而Task则是一个操作的堆栈,用于管理一系列相关的Activity...

    Android中的线程池与任务队列

    在Android开发中,高效地管理线程和任务执行是至关重要的,这关乎到应用的性能、响应速度以及用户体验。线程池和任务队列是实现这一目标的关键工具。本文将深入探讨Android中线程池与任务队列的概念、工作原理以及...

    Android手机任务管理器源码

    在Android系统中,任务管理器(Task Manager)是至关重要的组件,它负责监控和管理运行在设备上的应用程序和进程。本资源提供了Android手机任务管理器的源代码,这对于开发者深入理解Android系统的运行机制以及优化...

    跳转动画实现的一些方法涉及Style,task等知识点

    在实现跳转动画时,除了Style和Task,还可以利用Transition API(自Android Lollipop引入),它提供了更强大的动画控制能力,如共享元素过渡、路径动画等。例如,通过以下代码实现一个共享元素动画: ```java ...

    Android-Androidstudio多module混淆成一个Jar

    在Android开发过程中,有时我们需要将多个Module打包成一个单一的Jar文件,以便于代码管理和分发。Android Studio作为Google官方推荐的Android开发IDE,提供了强大的功能支持,包括构建脚本和Gradle插件,使得这一...

    Android代码-Termux:Task

    Termux:Task A Termux add-on app allowing Termux programs to be executed from Tasker. Termux:Task on Google Play Termux:Task on F-Droid License Released under the GPLv3 license. How to use Create a...

    Android Hijacking(安卓劫持)

    Android Hijacking,也被称为Intent Hijacking,是一种针对Android操作系统的安全威胁。这种攻击方式主要利用了Android应用间通信机制——Intent的不安全使用,导致恶意软件可以干扰或篡改正常应用的行为,从而获取...

    BackgroundTask:更强大的 Android AsyncTask 替代品

    后台任务 BackgroundTask 是在后台线程中执行代码而不会在 Android 上发生内存泄漏的最简单方法。 ###Usage### BackgroundTask 必须被子类化才能使用。 子类将覆盖构造函数和 doInBackground() 方法。 private ...

    Android-TimeTask是一个轻量简洁的定时任务队列框架

    在Android开发中,高效地管理后台任务是至关重要的,尤其是定时任务。`Android-TimeTask`就是这样一款专为Android设计的轻量级、简洁的定时任务队列框架。它旨在简化多组任务的分发和管理工作,使开发者能够更加专注...

    task1_menu.rar_android

    在Android平台上,菜单功能是应用程序不可或缺的一部分,它为用户提供了一种直观的方式来访问和操作应用的各种功能。本教程将深入探讨如何在Android中实现基本的菜单功能,以创建一个用户友好的交互界面。我们将重点...

    Task5_Recorder.rar_RECORDER_android_android Recorder

    总之,通过分析`Task5_Recorder`提供的示例代码,开发者可以深入了解Android平台上的录音功能实现,从而在自己的应用中集成这一特性。这不仅涵盖了基本的API使用,还涉及到权限管理和用户交互的设计,是学习和实践...

    应用展示了创建Kiosk(桌面锁定)应用时Android锁屏任务模式的基本使用

    在Android系统中,Kiosk模式,也称为自助服务模式或专有模式,是一种特殊的应用程序部署方式,主要用于商业、教育和公共场所,使设备只能运行特定的应用程序,限制用户对系统的其他部分进行访问。这种模式有助于确保...

Global site tag (gtag.js) - Google Analytics