在Android有异步处理需要重要的Service和Handler组件,今天首先学习一下Service组件,
     其中涉及到Android Service中进程间通信和bindService()的方法下一次在讲解学习
  1:首先来看看在文档中对于Service的概念的解释:
    Service是Android系统中的一种组件,重要性可以堪比Activity,但是也有显著的区别,Activity可以和用户进行交互,但是Service只能运行在后台,不能和用户直接交互;
    当我们退出应用的时候,Service还会在后台运行,进程不会结束;特别注意我们需要使用的Service的时候,我们需要在AndroidManifset.xml文件的service标签进行注册
    然后我们我们有两种启动Service的方法包括(①:Context.startService() 和②: Context.bindService()
   2:需要使用Service的地方:
    在文档中举了下面两个例子
     最让我们想到的是应该是播放器的时候,我们可能需要边听歌边干些其他的事情,此时我们会退出播放器的应用,如果不适用Service的话,一退出应该应用我们就不能听歌了;还有比如我们需要通过网络获取数据,由于使用网络获取数据的速度比较慢,此时我们可以使用Service来在后台进行获取更新,隔一段时间把获取到的数据发回,而不是让我每次要获取数据都要打开应用;
 3:Service与Activity通信:
Service后端的数据最终还是要呈现在前端Activity之上的,
在启动Service的时候,文档中这样描述:Note that services, like other application objects, run in the main thread of their hosting process
 主要该Service,和其他应用对象一样,运行其应用进程主线程上
   4:Service 启动方式:
一、context.startService()
二、context.bindService();
使用Service之前必须在AndroidMainfest.xml 中使用<service android:name=".service的类名"/>进行注册
 5:Service的使用方法(我今天主要学习的是startService)
   第一步:自己写一个继承Service类的类
   第二步:在AndroidMainfest.xml文件中进行注册
   第三步:startService()

Android重要组件之一 Service 服务讲解学习(一)_import

Android重要组件之一 Service 服务讲解学习(一)_service_02

  6:生命周期:

  首先看下声明周期的运行图

   Android重要组件之一 Service 服务讲解学习(一)_service_03

 ①: context.startService() 启动Service是会经历一下几个方法
启动的时候:context.startService() ---> onCreate() ---> onStartCommand()
  销毁的时候:ontext.stopService()   ---> onDestroy();
 如果Service没运行,则此时会先调用onCreate()方法,然后再调用onStartCommand();
 如果Service已经在运行,则只调用onStartCommand(),Service的onStartCommand(),方法可能会调用多次
 ②:
 启动时候:context.bindService() ---> onCreate() --->onBind();
 销毁的时候:onUnibind() ---> onDestroy()
onBind() 将会給客户端返回一个IBind接口的实例,此时客户端可以去调用服务的方法,不过此时Activity与Service算是绑定在一起了
意思是说如果Activity退出,那么此时的Service也会退出
 


接下来是实例Demo:

  

继承Service的方法:  import android.app.Service; import android.content.Intent; import android.os.IBinder;  public class ServiveTest extends Service {  	@Override 	public IBinder onBind(Intent intent) { 		// TODO Auto-generated method stub 		return null; 	}  	@Override 	public void onCreate() { 		System.out.println("onCreat------->"); 		super.onCreate(); 	}  	@Override 	public void onDestroy() { 		// TODO Auto-generated method stub 		System.out.println("onDestroy------->"); 		super.onDestroy(); 	}  	@Override 	public int onStartCommand(Intent intent, int flags, int startId) { 		System.out.println("onStartCommand------->"); 		return super.onStartCommand(intent, flags, startId); 	}  } 

Android重要组件之一 Service 服务讲解学习(一)_service_04Android重要组件之一 Service 服务讲解学习(一)_service_05

    今天就初步学习了一下Service的使用context.startService()的方法,下一次会进行使用context.bindService()和进程间通信的学习