首页 > 代码库 > 22、?多进程和多线程

22、?多进程和多线程

? Android进程简介

Android会启动一个LINUX进程和一个主线程。默认的情况下,所 有该程序的组件都将在该进程中运行。当启动应用程序时,Linux会为每 一个程序单独分配一个进程,该进程默认只拥有一个主线程。

组件可以运行在当前进程中,也可以运行在其他进程中。组件运行在 哪个进程中是在AndroidManifest.xml文件中设置的,其中<Activity>, <Service>,<receiver>和<provider>都有一个process属性来指定该 组件运行在哪个进程之中。

每一个进程不会创建新的线程,所有的处理事件都是在主线程中完 成的,例如,onClick。 

前台进程是用户当前正在使用的进程。只有一些前台进程可以在任何 时候都存在。他们是最后一个被结束的,当内存低到根本连他们都不能运 行的时候。一般来说, 在这种情况下,设备会进行内存调度,中止一些 前台进程来保持对用户交互的响应。 

可见进程不包含前台进程的组件。但是会在屏幕上显示一个可见的UI。 除非前台进程需要获取它的资源,不然不会被中止。

例如,如果前台Activity是一个对话框的话,就会允许在它后面看到 前一个Activity。 

(后台进程)后台不可见的进程。例如,后台运行的Activity、Service等。 

(空进程)未运行任何程序组件的线程。运行这些进程的唯一原因是作为一个缓 存,缩短下次程序需要重新使用的启动时间。系统经常中止这些进程,这 样可以调节程序缓存和系统缓存的平衡。 

? 并发与UI更新

Handler    Message 

? AsyncTask 

AsyncTask<Params, Progress, Result> 需要指定三个泛型 

22、?多进程和多线程