论坛首页 移动开发技术论坛

进程生命周期(Process Lifecycle)(sundy深入浅出)之五

浏览 1580 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-12-05  

写在前面的话:本系列主要是学习sundy的Android深入浅出视频中的一些记录,心得。方便自己以后查阅。也供大家查看。欢迎交流,补充。

一般作为面试题(有些有答案,有些没有。问题一般从sundy老师思维导图中摘录,答案并非唯一标准,仅供参考):

 

1、android的进程是如何启动的?

简单的说就是有一个远程服务package service,再通过packageManager加载找到的应用程序manifest文件中的launcher activity,实例化该activity为入口的activity。


2、android的5个进程等级他们的区别,优先等级?

1) Foreground Process

正处于Activity Resume() 状态

正处于与bound服务交互的状态

正处于服务在前台运行的状态 , (startForeground() 被调用)

Service生命周期函数正在被执行 ( onCreate() , onStart() , onDestroy())

BroadcastReceiver 正在执行onReceive()方法


杀死Foreground Process 需要用户响应-因为这个安全优先级是最高的


2) Visible Process

Activity 不在前端显示 , 但也没有完全隐藏,能够看得见,比如弹出一个对话框 。(Input Method)

一个bound到visible 或者 foreground 的activity的 Service 


3) Service Process

正在运行的,不在上述两种状态的Service


4) Background Process

不可见状态的Activity进程,(onStop()被调用)


5) Empty Process

没有运行任何Components的进程,保留这个进程主要是为了缓存的需要


3、如果又有Service又有Visible Activity怎么办?

From developer.android.com : 

if a process hosts a service and a visible activity, the process is ranked as a visible process, not a service process.

当进程既有Service 并且 有Visible Activity的时候,进程会被认为是Visible 进程 。 


结论 : 优先级高的为准 。

 

论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics