Java乔晓松-android的四大组件之一Service(服务的绑定)
android的四大组件之一Service(服务的绑定)
怎么绑定服务,又怎么解除服务,代码如下:
MainActivity.java源码:
package com.example.lesson14_binder; import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View; /**
* 2013-6-18 下午2:22:00
*
* @author 乔晓松
*/
public class MainActivity extends Activity { public MyService myService;
// 内部类获取连接对象
public ServiceConnection conn = new ServiceConnection() { // 连接失败后调用的方法
@Override
public void onServiceDisconnected(ComponentName name) {
myService = null;
System.out.println("-----service Faild");
} // 连接成功后调用的方法
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
myService = ((MyService.MyBinder) service).getService();
System.out.println("-----service connection");
}
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} // 绑定服务
public void bindService(View v) { Intent serviceIntent = new Intent(this, MyService.class);
this.bindService(serviceIntent, conn, Context.BIND_AUTO_CREATE); System.out.println("---------bindService");
} // 解除绑定
public void unBindService(View v) {
this.unbindService(conn);
System.out.println("---------unBindService");
} }
MyService.java源码:
package com.example.lesson14_binder; import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder; /**
* 2013-6-18 下午2:16:37
*
* @author 乔晓松
*/
public class MyService extends Service { public MyBinder myBinder = new MyBinder(); // 绑定的时候执行
@Override
public IBinder onBind(Intent intent) {
System.out.println("------onBind");
return myBinder;
} // 重新绑定的时候执行
@Override
public void onRebind(Intent intent) {
super.onRebind(intent);
System.out.println("------onRebind");
} // 解除绑定的时候执行
@Override
public boolean onUnbind(Intent intent) {
System.out.println("------onUnbind");
return super.onUnbind(intent);
} // 创建服务的时候执行
@Override
public void onCreate() {
super.onCreate();
System.out.println("------onCreate");
} // 开启服务的时候执行
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
System.out.println("------onStartCommand");
return super.onStartCommand(intent, flags, startId);
} // 销毁服务的时候执行
@Override
public void onDestroy() {
super.onDestroy();
System.out.println("------onDestroy");
} // 继承绑定类的内部类
public class MyBinder extends Binder {
public MyService getService() {
return MyService.this;
}
}
}
布局文件的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="59dp"
android:onClick="bindService"
android:text="@string/btn_start" /> <Button
android:id="@+id/btn_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/btn_start"
android:layout_alignRight="@+id/btn_start"
android:layout_below="@+id/btn_start"
android:layout_marginTop="58dp"
android:onClick="unBindService"
android:text="@string/btn_end" /> </RelativeLayout>
Java乔晓松-android的四大组件之一Service(服务的绑定)的更多相关文章
- Java乔晓松-android中调用系统拍照功能并显示拍照的图片
android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ...
- Java乔晓松-android中上传图片到服务器Tomcat(Struts2)
在做android开发的时候,有时你会用到图片的上传功能,在我的android项目中,我是选中图片,点击上传多张图片 android客户端上传图片部分的代码如下: package com.exampl ...
- Java乔晓松-android中的帧动画FrameByFrame
先看效果后上代码: 动画开始---- 动画切换的界面---- 动画播放完毕后的跳转界面----- 重要的方法: imageView.setBackgroundResource(R.anim.frame ...
- Java乔晓松-android中获取图片的缩略图(解决OutOfMemoryError)内存溢出的Bug
由于android获取图片过大是会出现内存溢出的Bug 07-02 05:10:13.792: E/AndroidRuntime(6016): java.lang.OutOfMemoryError 解 ...
- Android开发四大组件之Service(具体解释篇)
Android开发之四大组件--Service 一.Service 简单介绍 Service是android系统中的四大组件之中的一个(Activity.Service.BroadcastReceiv ...
- Android四大组件之Service --- 服务的生命周期
一旦在项目的任何位置调用了Context的startService() 方法,相应的服务就会启动起来,并回调onStartCommand() 方法.如果这个服务之前还没有创建过,onCreate() ...
- Android Studio四大组件之Service
Service在Android运行在后台,它没有可视化界面,只是默默运行在后台.我们以一个后台定时器的例子清晰的说明Service的运行流程. 一.创建Service类 项目右键->New-&g ...
- Android四大组件之Service
Android四大组件之Service Android支持服务的概念,服务是在后台运行的组件,没有用户界面,Android服务可用有与活动独立的生命周期.Android支持两种类型的服务: 本地服务: ...
- Android的四大组件
Android的四大组件:Activity.Service.BroadcastReceiver.Content Provider. Content Provider 属于Android应用程序的组件之 ...
随机推荐
- C++历史
C++历史 早期C++ •1979: 首次实现引入类的C(C with Classes first implemented) 1.新特性:类.成员函数.继承类.独立编译.公共和私有访问控制.友元.函数 ...
- WinDbg分析DMP文件方法完全攻略
前言:在C++实际开发过程中,开发出来的程序,一般情况下由开发人员进行单元测试,然后移交给测试人员进行测试.在开发人员测试出现的bug,我们可以直接在本地进行调试.如果测试人员测试出崩溃级别的bug, ...
- 8592 KMP算法
8592 KMP算法 时间限制:1000MS 内存限制:1000K 题型: 编程题 语言: 无限制 描写叙述 用KMP算法对主串和模式串进行模式匹配. 本题目给出部分代码.请补全内容. #inc ...
- 《Head First 设计模式》学习笔记——模板方法模式
模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以详细方法以及详细构造函数的形式实现.然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类能够以不同的方式实现这些抽象方法,从而对剩余的逻辑有 ...
- Windows移动开发(四)——闭关修炼
非常久不写博客了,不是由于不想写,仅仅是近期公司任务比較多,最终十一有时间出来冒泡了. 今天继续介绍移动开发中的重中之重--内存管理. C#代码是托管代码,C# 程序猿非常少像C/CPP程序猿那样为程 ...
- hibernate 在tomcat7.X 下配置mysql数据源
先说一点题外话,LZ近期学习java web. 今天刚看到hibernate,发如今hibernate配置数据源时网上的资料都太久远了,一般以tomcat 5 版本号下的配置居多.而tomcat 7下 ...
- 使用和制作patch文件
使用和制作patch文件 发表时间: 2007-2-13 20:57 作者: superuser 来源: 迷茫人 字体: 小 中 大 | 打印 原文http://www.linuxsir. ...
- 浅谈SQL之主键、外键约束
约束:顾名思义就是一种限制,在表或列的层次设置约束,确保数据的有效性和完整性. SQL server中约束的主要分类: UNIQUE约束(唯一性约束) 防止一个特定的列中两个记录具有相同的值.可设置多 ...
- Android SDK r23
SDK Tools Only Platform Package Size MD5 Checksum Windows 32 & 64-bit android-sdk_r23-windows.zi ...
- SEAndroid安全机制中的进程安全上下文关联分析
前面一篇文章分析了文件安全上下文关联过程.可是在SEAndroid中,除了要给文件关联安全上下文外,还须要给进程关联安全上下文.由于仅仅有当进程和文件都关联安全上下文之后,SEAndroid安全策略才 ...