android 学习

要创建服务,你需要创建一个继承自Service基类或者它的已知子类的Java类。Service基类定义了不同的回调方法和多数重要方法。你不需要实现所有的回调方法。虽然如此,理解所有的方法还是非常重要的。实现这些回调能确保你的应用以用户期望的方式实现。

回调描述
onStartCommand() 其他组件(如活动)通过调用startService()来请求启动服务时,系统调用该方法。如果你实现该方法,你有责任在工作完成时通过stopSelf()或者stopService()方法来停止服务。
onBind 当其他组件想要通过bindService()来绑定服务时,系统调用该方法。如果你实现该方法,你需要返回IBinder对象来提供一个接口,以便客户来与服务通信。你必须实现该方法,如果你不允许绑定,则直接返回null。
onUnbind() 当客户中断所有服务发布的特殊接口时,系统调用该方法。
onRebind() 当新的客户端与服务连接,且此前它已经通过onUnbind(Intent)通知断开连接时,系统调用该方法。
onCreate() 当服务通过onStartCommand()和onBind()被第一次创建的时候,系统调用该方法。该调用要求执行一次性安装。
onDestroy() 当服务不再有用或者被销毁时,系统调用该方法。你的服务需要实现该方法来清理任何资源,如线程,已注册的监听器,接收器等。

下面的主服务演示了每个方法的生命周期 

 

 1 package com.runoob.androidservices;
 2 
 3 import android.app.Service;
 4 import android.os.IBinder;
 5 import android.content.Intent;
 6 import android.os.Bundle;
 7 
 8 public class HelloService extends Service {
 9 
10     /** 标识服务如果被杀死之后的行为 */
11     int mStartMode;
12 
13     /** 绑定的客户端接口 */
14     IBinder mBinder;
15 
16     /** 标识是否可以使用onRebind */
17     boolean mAllowRebind;
18 
19     /** 当服务被创建时调用. */
20     @Override
21     public void onCreate() {
22 
23     }
24 
25     /** 调用startService()启动服务时回调 */
26     @Override
27     public int onStartCommand(Intent intent, int flags, int startId) {
28         return mStartMode;
29     }
30 
31     /** 通过bindService()绑定到服务的客户端 */
32     @Override
33     public IBinder onBind(Intent intent) {
34         return mBinder;
35     }
36 
37     /** 通过unbindService()解除所有客户端绑定时调用 */
38     @Override
39     public boolean onUnbind(Intent intent) {
40         return mAllowRebind;
41     }
42 
43     /** 通过bindService()将客户端绑定到服务时调用*/
44     @Override
45     public void onRebind(Intent intent) {
46 
47     }
48 
49     /** 服务不再有用且将要被销毁时调用 */
50     @Override
51     public void onDestroy() {
52 
53     }
54 }

 

posted @ 2021-01-29 21:19  敲敲代代码码  阅读(39)  评论(0)    收藏  举报