• 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 }
  • 相关阅读:
    Linux下使用mtr做路由图进行网络分析
    PHP使用AJAX返回登录成功信息完整参考代码
    ajax提交表单数据不跳转
    帝国cms常用变量总结
    2020软件工程作业04
    2020软件工程作业03
    疑问
    2020软件工程02
    疑问
    2020软件工程作业01
  • 原文地址:https://www.cnblogs.com/Nojava/p/14892026.html
Copyright © 2020-2023  润新知