Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android应用程序上的活动和线程有什么区别?_Android_Android Activity - Fatal编程技术网

android应用程序上的活动和线程有什么区别?

android应用程序上的活动和线程有什么区别?,android,android-activity,Android,Android Activity,我对android应用程序上的活动和线程之间的区别感到困惑。那么,一个活动就像一个独立的线程吗?如果是这样,多个活动能否在多线程应用程序中同时运行 谢谢您应该了解UI线程的概念。基本上,有一个主线程(调用活动回调方法的主线程),您可以启动其他线程。启动的线程无法更新UI,只能更新UI线程 请参阅此处的更多信息:我相信您以前可能已经阅读了的文档。如果没有,请这样做。在这里,您可以阅读更多关于android的信息。现在,回答你的问题: 活动是独立线程吗? 每个活动都不是一个独立的线程。正如@andr

我对android应用程序上的活动和线程之间的区别感到困惑。那么,一个活动就像一个独立的线程吗?如果是这样,多个活动能否在多线程应用程序中同时运行


谢谢

您应该了解UI线程的概念。基本上,有一个主线程(调用活动回调方法的主线程),您可以启动其他线程。启动的线程无法更新UI,只能更新UI线程


请参阅此处的更多信息:

我相信您以前可能已经阅读了的文档。如果没有,请这样做。在这里,您可以阅读更多关于android的信息。现在,回答你的问题:

活动是独立线程吗?

每个活动都不是一个独立的线程。正如@android.h在评论中提到的,所有活动都在同一个平台上运行

多个活动能否作为多线程应用程序同时运行?

如上所述,所有活动、服务、内容提供者、广播接收者等都在UI线程上运行。也就是说,您可以从一个活动本身中启动多个线程。所以,您的应用程序可以使用多个线程,但运行多个活动并不能使其成为多线程

进行多个活动时,您可能会阅读文档。它强调了多项活动的概念:

一个应用程序通常由多个相互松散绑定的活动组成。通常,应用程序中的一个活动被指定为“主”活动,在首次启动应用程序时呈现给用户。然后,每个活动可以启动另一个活动以执行不同的操作。每次新活动启动时,前一个活动都会停止,但系统会将该活动保留在堆栈(“后堆栈”)中。当一个新的活动开始时,它被推到后堆栈上,并以用户为中心。后堆栈遵循基本的“后进先出”堆栈机制,因此,当用户完成当前活动并按下“后退”按钮时,它将从堆栈中弹出(并被销毁),前一个活动将继续
。这就是多活动的工作原理

希望这能让你的概念更清晰一点

那么,活动是独立线程吗

是和否。只有一个
活动的Android应用程序将有一个进程和一个线程,但如果有多个应用程序组件,它们通常都使用相同的线程(除了某些使用自己线程的Android类)

请阅读以下内容

如果是这样,多个活动能否作为多线程应用程序同时运行

活动
只有在完全可见时才被视为“正在运行”。例如,当弹出窗口(如对话框等)出现时,基础的
活动仍然部分可见,但将处于“暂停”状态。如果启动另一个
活动
并完全隐藏上一个活动(无论是您自己的应用程序还是外部应用程序的一部分),则上一个
活动
将进入“停止”状态,甚至可能被销毁

基本上,Android
活动
不是在多线程环境中允许多任务的工作马。
活动
基本上是一个UI框架,用于提供按钮、文本视图、图像等,并允许用户交互

另见

…同时请查看此处的
活动
生命周期图


正如android.h所提到的,所有UI对象、活动都运行在主线程上。但是,您仍然可以使用异步任务从另一个线程中的web服务读取数据,这将帮助您避免在后台执行该任务。
希望我的回答对您有所帮助。

活动是一个用户界面,而线程是一个执行某些代码的进程工作者。Android确实有一个主线程控制所有用户界面(UI),因此如果您不指定运行活动的其他线程,主线程将运行您的整个UI。

活动是用户在使用应用程序时看到的任何UI,线程是您的任务运行的地方。。总有一个线程称为主线程来运行应用程序中的所有ui和进程,如果你想提高执行速度,你需要创建更多线程,这样你的主线程就不会受到干扰,繁重的任务也不会在后台运行。

活动代表单屏幕,它有UI,而另一个手线程没有UI,它用于执行后台操作

每个UI对象、活动、服务,广播接收器正在主线程中运行。