1、Activity:
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
public class DemoActivity extends Activity {
/** Called when the activity is first created. */
private Intent intent ;
private MyServiceConnection conn;
private IService ibinder;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
intent = new Intent(this,MyService.class);
conn = new MyServiceConnection();
}
/**
* 希望一个服务一直存在,并且能够调用服务里面的方法。
* 启动服务
* 先通过startService()的方式来启动服务,再通过onBind()的方式去绑定服务。
*
* onCreate() --> onStart() -->onBind()
*
*
* 停止服务:
* 1: 先unbindService()来解绑服务,再通过stopService()来停止服务
* onUnbind() ---> onDestory()
*
* 2:先stopService()来停止服务,再通过unbindService()来解绑服务
*
* onUnbind() ---> onDestory()
*
*
* 通过startService()方式启动的服务,必须通过调用stopService()才能停止服务。
* 如果服务还有绑定对象,那么一个服务是不会被停止的。
*
*
* 怎么去调用服务里面方法。1 必须通过bindService()才能和服务进行通讯。打开了一个ServiceConnection连接。服务给我们返回了一个IBinder对象
*/
public void startservice(View v){
startService(intent);
}
public void stopservice(View v){
stopService(intent);
}
/**
* 一个访问者只能和服务绑定一次,多次绑定那么服务里面的onBind()方法不会多次被调用
*/
public void bindservice(View v){
bindService(intent, conn, BIND_AUTO_CREATE);
}
/**
* 一旦访问者和服务断开了连接,如果再次解绑服务,会出现异常
*/
public void unbindservice(View v){
unbindService(conn);
}
private final class MyServiceConnection implements ServiceConnection{
public void onServiceConnected(ComponentName name, IBinder service) {
// TODO Auto-generated method stub
ibinder = (IService) service;
}
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
}
}
public void call(View v){
ibinder.invoke();
}
}
2、MyService
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
public class MyService extends Service {
private IBinder ibinder = new MyBinder();
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Log.i("i", " onCreate()");
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
Log.i("i", " onStart()");
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
Log.i("i", " onBind()");
return ibinder;
}
@Override
public boolean onUnbind(Intent intent) {
// TODO Auto-generated method stub
Log.i("i", " onUnbind()");
return super.onUnbind(intent);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.i("i", " onDestroy()");
}
private final class MyBinder extends Binder implements IService{
public void invoke() {
// TODO Auto-generated method stub
callme();
}
}
private void callme(){
Log.i("i", "服务里面的方式被调用了");
}
}
3、IService
public interface IService {
public void invoke();
}
4、最后别忘了在AndroidManifest.xml中注册上Service
分享到:
相关推荐
1. SQL 常用对象整理;2.SQLSERVER2005/2008 的新语法操作;3.SQL 查询的技巧,行转列,列装行;4.存储过程,函数,触发器,游标的整理...7.BI要复习的知识点如下;8.SQLServer的调优工具和性能优化工具及执行计划详解
天翼云认证应知应会重点知识点串讲,天翼云应知应会认证核心知识点。1、云计算的概念、发展和原理(必修) 必备掌握知识点: (1)美国国家标准与技术研究所(NIST)对云计算的定义:云计算是一种模型,它可以实现 ...
将k8s的知识点详细的总结了一下,可轻松入手,下面是目录 kubenetes前世今生、 kubenetes组件、kubenetes-pod概念、kubenetes网络通讯方式、 kubenetes资源清单 kubenetes Service、kubenetes 存储
本课程面对这一需求,涵盖了服务计算方向的主要知识点,主要内容包括服务计算概要、面向服务的体系结构(方法学)、服务计算技术(技术观)、Web服务基础(实现式)、实时服务计算(航空航天特色)和服务计算的基础...
系分各知识点总结精炼,共63页 1 开发技术:语言与平台 2 Web Service相关技术 3 软件工程、软件架构及软件体系结构 4.数据库测试数据自动生成工具 5 数据库、数据仓库、数据挖掘 6 企业应用集成 7 网格技术 8 信息...
通过本实习,可以较系统地学习和巩固.Net Framework环境及Web Service的开发,结合设计项目,将理论教学中所涉及的知识点贯穿起来,使学生在以下方面得到进一步提高: 1、进一步巩固、加深所学专业课程《XML Web ...
下面我们以CentOS 6作为基础,谈一谈我对Linux的基本需求。 1.1 最小化安装 CentOS有一个minimal版本,相对于标准版去掉了很多Service,比如Network Manger,安装最小版本以后的网络配置是需要admin进行全手工配置...
正文讲述的所有内容,基本上都有可运行的代码演示,这有利于读者尽快地掌握知识要点。 本书适合一定Java基础的读者阅读,既可作为在校学生、中高级技术开发工程师和其他IT技术人员的参考书,也可作为大专院校和培训...
本项目为JAVAEE基础班综合项目,包含了若干个知识点,达到将基础班所学知识综合使用,提高了我们对项目的理解与知识点的运用。 掌握View层、Web层、Service层、Dao层等之间的方法相互调用操作. 掌握dbutils操作...
涉及到了,一个基本的widget程序的大部分知识点,包括widget和service如何交换数据,service如何利用RemoteView来控制widget上的组件更新。 网上查了不少资料,才写了一个Demo,欢迎下载哈。。。
Java 面试基础考察点:从面试中经常考察的 Java 基础核心知识点讲起,帮你系统化梳理 Java 知识体系,练好基本功,是面试前必须要牢牢掌握的模块。 Java 应用考察点:将围绕常用工具集、常用框架、缓存、队列、...
2. 云数据中心中运维的一些基本知识,并简单 介绍了云数据中心运维的工作内容 3. 迁移的背景, 概述,评估,方案的设计与实施以及最后的调优与验收五大 方面阐述迁移实施的基本流程。4. 掌握云计算的基础故障处理 ...
正文讲述的所有内容,基本上都有可运行的代码演示,这有利于读者尽快地掌握知识要点。 本书适合一定Java基础的读者阅读,既可作为在校学生、中高级技术开发工程师和其他IT技术人员的参考书,也可作为大专院校和培训...
本教程将采取从简单到复杂,知识点和实际代码相结合的方式。先讲述一些简单的概念和代码,使大家先对 CXF 建立起直观的印象,并且能够写出自己的应用程序。然后再介绍 CXF 的类与 Spring 2.0 的简单整合,并且讲述...
JAVA基础知识点总结.doc 第1章 Java程序设计概述 第2章 Java语言的开发环境 第3章 Java程序的基本结构 第4章 对象和类 第5章 继承和多态 第6章 泛型程序设计 第7章 接口和内部类 第8章 异常处理 第9章 反射,代理,...
本书讲述的所有内容,大部分都配有可运行的代码演示,这有利于读者尽快地掌握知识要点。 本书适合有一定Java基础的读者阅读,可作为在校学生、中高级技术开发工程师和其他IT技术人员的参考书,也可作为大专院校和...
这一系列博客将为您详细解说这些要点。 新的服务架构和服务应用 SharePoint 2010引人注目的一点是服务架构的整体改变。以前的共享服务Shared Service Provider不复存在,取而代之的是独立的Shared Service ...
那些你不一定知道的Android知识N系列… Android的四大组件 Activity (活动) Service (服务) Content provider(内容提供器) BroadCast Recevicer(广播) Activity (活动) 体现: 你所看到APP里每个单独的...
事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle...