Var*_*rma 2 multithreading android process task android-activity
以上所有有什么区别?我发现了各种有用但也很混乱的帖子。简而言之,根据我的理解,这就是我想到的:
小智 5
您应该区分进程和线程与活动与任务。他们甚至不属于同一类别。
让我们从最简单的开始,Task的. 假设您不是在谈论任何实际的类,即 TimerTask,Task 的基本概念如下。当用户第一次启动您的应用程序时,会创建一个新任务。您可以通过按“OverviewButton”(软件按钮的正方形表示)来查看这一点。(在 Android 5.0 及更高版本上)任务不会被处理,除非用户实际从概览屏幕中删除(向左/向右滑动)它。因此,任务实际上只是用户的高级抽象。就像你提到的,一个任务有一个 Activity backstack,它只是一个普通的堆栈,用于跟踪用户的“历史”。例如,您的应用程序启动,您的 MainActivity 将位于堆栈底部,用户输入一些值,然后继续执行新的 Activity。现在这个新的 Activity 高于上一个,
现在对于Processes & Thread 来说,Android 下的 Processes 与 linux 进程非常相似,您的应用程序通常只会在一个进程中工作。操作系统会为进程分配内存的某个部分,如果您熟悉 C 等语言,则尝试访问不属于您的进程的内存将导致“分段错误”。
就像你说的,一个进程可能有任意数量的Threads,假设操作系统可以管理所需的开销。一个进程至少有一个线程,在android下这称为Main-Thread或UI-Thread。线程,基本上,允许你并行地做一些工作。您很可能需要使用它们,例如在执行网络操作时。
现在对于活动,它们与多线程没有直接关系。当前的“活动活动”是在 UI 线程上运行的活动。所以它的所有回调都将在 UI-Thread 上运行,除非特别说明不这样做。Activity 是 android 框架使用的抽象,它存在于与 Processes & Thread 完全不同的级别。您可以从您想要的任何线程调用活动中定义的方法。
归档时间: |
|
查看次数: |
2715 次 |
最近记录: |