上述各点之间有什么区别?我发现各种帖子很有帮助,但也很令人困惑。简而言之,根据我的理解,这就是我的观点:
发布于 2017-06-20 12:42:18
您应该区分进程&线程与活动与任务。他们甚至不属于同一类别。
让我们从最简单的一个开始,Task的。假设您没有谈论任何实际的类,即TimerTask,任务的基本概念如下。当用户第一次启动应用程序时,将创建一个新任务。您可以通过按下"OverviewButton“(由软件按钮的正方形表示)来看到这一点。(在Android5.0中,一个更高的任务将不会被释放,除非用户实际将其从概述屏幕上删除(左/右)。因此,任务实际上只是用户的一个高级抽象。正如您所提到的,任务有一个活动后台,它只是一个正常的堆栈,用于跟踪用户的“历史记录”。例如,您的应用程序被启动,您的MainActivity将位于堆栈的底部,用户输入一些值,然后继续进行一个新的活动。现在,这个新的活动高于上一个活动,用户可以在任何时候按下“后退”按钮--希望--随时返回到之前的活动。
现在对于 process &Thread的来说,安卓下的进程非常类似于linux,您的应用程序通常只能在一个进程内工作。如果您熟悉像C这样的语言,那么进程就会被OS分配到内存的某一部分,试图访问不属于您的进程的内存将导致“分割错误”。
正如您所说的,假设操作系统能够管理所需的开销,一个进程可能有任意数量的线程。一个进程至少会有一个线程,在android下这被称为或UI-Thread。线程,基本上,允许您并行地做一些工作。您很可能需要使用它们,例如,在执行网络操作时。
现在对于Activities来说,它们与多线程没有直接关系。当前的“活动活动”是在UI-线程上运行的活动。因此,它的所有回调都将在UI-Thread上运行,除非有明确的文档说明没有。活动是android框架使用的一种抽象,它存在于一个与进程&线程( Thread )根本不同的层次上,您可以从任意线程调用活动中定义的方法。
https://stackoverflow.com/questions/44651226
复制相似问题