进程生命周期

来源:互联网 发布:淘宝首页广告 编辑:程序博客网 时间:2024/05/23 11:28

Application component:Activity,Service,BroadcastReceiver
  它们一般运行在主线程中
  当需要在Activity和BroadcastReceiver里执行耗时的代码时,可启动一个Service,然后再Service里新建线程.这样所在进程重要性更高
  可以在Activity中直接新建线程来处理上述问题,不能在BroadcastReceiver执行异步操作(比如新建线程来运行耗时的代码)
  

foreground process:
  Activity处于onResume()
  拥有连接到处于onResume()Activity的service
  正在执行service的onCreate(),onStart(),onDestroy()
  正在执行BroadcastReceiver的onReceive()
visible process:
  Activity处于onPause()
  拥有连接到处于onPause()Activity的service(当Activity处于onStop()时,service会处于onDestroy())
service process:
  使用startService()启动service(当Activity处于onStop()或onDestroy()时,仍需要执行一些代码.进程重要性比直接使用Thread的进程的高)
background process:
  Activity处于onStop()
empty process:
  Activity处于onDestroy()
  Service处于onDestroy()
  退出了BroadcastReceiver的onReceive()

什么时候在service里创建线程,什么时候直接创建线程?
答:当即使Activity不可见,仍需要可靠地执行某些代码时,使用前者;当不要求Thread的生命周期比Activity长时,使用后者.在onStop()时,销毁线程.

原创粉丝点击