import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;

public class BindService extends Service{
  private int count;
  private boolean quit;
  //定义onBinder方法所返回的对象
  private MyBinder binder = new MyBinder();
  //通过继承Binder来实现IBinder类
  public class MyBinder extends Binder{
    public int getCount(){
      //获取Service的运行状态:count
      return count;
    }
  }

  //必须实现的方法
  @Override
  public IBinder onBind(Intent intent) {
    System.out.println("Service is Binded");
    //返回IBinder对象
    return binder;
  }

  //Service被创建时回调该方法
  @Override
  public void onCreate() {
    super.onCreate();
    System.out.println("Service is Created");
    //启动一条线程、动态地修改count状态值
    new Thread(){
      public void run() {
        while(!quit){
          try {
            Thread.sleep(1000);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
          count++;
        }
      }
    }.start();
  }
  //Service被断开连接时回调该方法
  @Override
  public boolean onUnbind(Intent intent) {
    System.out.println("Service is Unbinded");
    return true;
  }

  //Service被关闭之前回调
  @Override
  public void onDestroy() {
    super.onDestroy();
    this.quit = true;
    System.out.println("Service is Destroyed");
  }

}

绑定本地Service并与之通信-----之一的更多相关文章

  1. Android菜鸟的成长笔记(18)——绑定本地Service并与之通信

    在上一篇中介绍了Service与Activity的区别及Service两种启动方式中的第一种启动方式startService(). 我们会发现用startService().stopService() ...

  2. 绑定本地Service并与之通信-----之二

    import android.os.Bundle;import android.os.IBinder;import android.app.Activity;import android.app.Se ...

  3. 绑定本地Service并与之通信

    绑定Service需要调用 public boolean bindService (Intent service, ServiceConnection conn, int flags): 传入一个Se ...

  4. Android开发学习之路-Service和Activity的通信

    在很多时候,Service都不仅仅需要在后台运行,还需要和Activity进行通信,或者接受Activity的指挥,如何来实现,来看代码. 定义一个服务 // 创建一个服务,然后在onBind()中返 ...

  5. Android Service、IntentService,Service和组件间通信

    Service组件 Service 和Activity 一样同为Android 的四大组件之一,并且他们都有各自的生命周期,要想掌握Service 的用法,那就要了解Service 的生命周期有哪些方 ...

  6. 绑定本地的Session

    绑定本地的Session图示解析: 代码的结构: 代码: SaveServlet.java package com.itheima.servlet; import java.io.IOExceptio ...

  7. C# 开源一个基于 yarp 的 API 网关 Demo,支持绑定 Kubernetes Service

    关于 Neting 刚开始的时候是打算使用微软官方的 Yarp 库,实现一个 API 网关,后面发现坑比较多,弄起来比较麻烦,就放弃了.目前写完了查看 Kubernetes Service 信息.创建 ...

  8. 【Service Fabric】小白入门记录 本地Service Fabric集群安装及设置

    本篇内容是自学自记,现在我还不知道Service Fabric究竟是怎么个入门法,反正按照入门教程先进行本地Service Fabric集群的安装,万里路始于足下,要学习总得先把环境装好了才能开始学习 ...

  9. socket的bind函数是不是只能绑定本地IP,不能绑定外网IP么?

    参考: https://bbs.csdn.net/topics/391024376 别瞎猜测. 所谓bind,就是指绑定本地接受端口. 指定ip,是为了分辨多ip主机. --------------- ...

随机推荐

  1. iOS - Swift NSSize 尺寸

    前言 结构体,这个结构体用来表示事物的宽度和高度. public typealias NSSize = CGSize public struct CGSize { public var width: ...

  2. Python学习(21)python操作mysql数据库_操作

    目录 数据库连接 创建数据库表 数据库插入操作 数据库查询操作 数据库更新操作 删除操作 执行事务 错误处理 数据库连接 连接数据库前,请先确认以下事项: 您已经创建了数据库 TEST. 在TEST数 ...

  3. Android 自定义对话框

    Android实现自定义对话框效果: 核心代码: package com.example.diydialog; import android.os.Bundle; import android.app ...

  4. windows volume related concepts

    Volume --- 一个volume就是一个分区.  在该“物理硬盘”上创建一个或多个分区,再创建文件系统,才可以得到一个VOLUME.此时VOLUME相对于主机是一个逻辑设备. https://m ...

  5. 企业信息化快速开发平台JeeSite

    网站:http://jeesite.com/ 可用于企业后台管理

  6. 工作常用的linux/mysql/php/工具命令

    工作常用的linux/mysql/php/工具命令: 1. tar备份目录 tar zcvf ****.tar.gz ****/ tar 备份跳过目录 tar --exclude=test1 3. s ...

  7. java final

    final:(最终的)看不懂时有必要分析内存画图,不同方法的局部变量是相互独立的额不要被所起的名所困扰. 1)每个方法运行时jvm,都会为其开辟一片内存空间.内存空间是属于这个方法的, 同时,方法中的 ...

  8. dede如何新建一个ajax服务端输出文件

    <?phprequire_once(dirname(__FILE__)."/include/common.inc.php");AjaxHead();    $dsql-> ...

  9. WordPress无法连接MySQL数据库

    安装WordPress,需要配置MySQL数据库.配置好用户名和密码后居然还是报错. 通过抓包软件,发现根本没有数据包发往3306端口. 只能google之,发现是因为selinux的原因 解决方案: ...

  10. php面向对象Object

    1.创建类 class 类名{ private 私有变量 只能本类的内部使用 protected 受保护的变量 本类和子类的内部 public 公开的变量 都可以使用 一般属性都设为私有 一般函数都是 ...