一、startService(Intent service);
启动service
:startService(Intent service)时调用的方法:
- public void onCreate()
- public int onStartCommand(Intent intent, int flags, int startId)
终止service
:stopService(Intent service)时调用的方法:
- public void onDestroy()
若没有调用stopService()。Service会一直在后台运行,下次调用者仍可以stopService
多次调用startService,Service只能被创建一次,即onCreate()方法只被调用一次,但是每次都会调用onStartCommand()。
二、bindService(intent,connection, Context.BIND_AUTO_CREATE);
启动service
:bindService时调用的方法(调用者和Service绑定在一起):
- public void onCreate()
- public IBinder onBind(Intent intent)
多次调用bindService()方法时onBind()只执行最初的一次
终止service
(两种情况):
unBindService(ServiceConnect conn)时调用的方法:
调用者的Context不存在(如Activity被finish),多个绑定时为所有的Context都不存在:
- public boolean onUnbind(Intent intent)
- public void onDestroy()
只有第一次执行bindService()时onCreate()和onBind()方法才会被调用,多次执行bindService()时不会被多次调用
网友评论