一、Service的启动分为startService和BindService
1.startService启动服务,Activity与Service是生命周期互不影响,如果通信可以使用广播
2.BindService启动服务,Activity与Service中间有一个连接,要使连接成功,onBind()必须返回一个IBinder对象。
3.创建一个Service,
import android.app.Service; import android.content.Intent; import android.os.Binder; import android.os.IBinder; import android.util.Log; public class ScorsService extends Service { /** * 在整个生命周期中只调用一次 */ @Override public void onCreate() { super.onCreate(); Log.e("ScorsService", "onCreate"); } /** * 每一次startService都会调用 */ @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.e("ScorsService", "onStartCommand"); return super.onStartCommand(intent, flags, startId); } /** * bindService启动时调用,在整个生命周期中只调用一次 * 要是Activity与Service连接成功,必须返回一个IBinder对象 */ @Override public IBinder onBind(Intent intent) { Log.e("ScorsService", "onBind"); return new MyIBinder(); } class MyIBinder extends Binder { public double scoreNums(double... scores) { int count = scores.length; if (count == 0) { return 0; } double sum = 0; for (double score : scores) { sum += score; } return sum/count; } } /** * 在整个生命周期中只调用一次 */ @Override public boolean onUnbind(Intent intent) { Log.e("ScorsService", "onUnbind"); return super.onUnbind(intent); } /** * 在整个生命周期中只调用一次 */ @Over