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应用程序的组件之 ...
随机推荐
- SQL ---指令实例语句
1 1 create database+数据库名字 创建数据库 2 2 create table+表的名字 创建表 3 表中的操作: 4 3 insert into 表名 (列名1,列名2··)val ...
- Spark中的Scheduler
Spark中的Scheduler scheduler分成两个类型.一个是TaskScheduler与事实上现,一个是DAGScheduler. TaskScheduler:主要负责各stage中传入的 ...
- POJ 1742 hdu 2844 Coins
题目链接:http://poj.org/problem?id=1742 http://acm.hdu.edu.cn/showproblem.php?pid=2844 题目分类:动态规划 代码: #in ...
- HashMap的工作原理(转)
HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- wordpress搭建后地址栏页面显示IP地址的问题
搭建了wordpress.也在万网加入了A记录,这时訪问站点(我的是yesareno.com),发现仅仅在yesareno的主页,地址栏是域名.点击进入其它界面发现地址栏变成了ip地址,例如以下图 竟 ...
- OCP读书笔记(7) - 使用RMAN执行恢复
7.Using RMAN to Perform Recovery 使用RMAN进行完全恢复system表空间文件丢失的恢复 模拟损坏: SQL> conn /as sysdba; SQL> ...
- keil提示:missing ';' before 'XXX'但又找不到是哪里少了分号——已解决!
今天写一个51程序,keil在编译时总提示丢失了一个分号,但怎么都找不到是哪里丢失了分号,搞了一下午才解决问题,现在把经验在此分享,以求让他人不要犯同样的错误!提示信息为: LCD12864.H(20 ...
- BZOJ 刷题记录 PART 6
[BZOJ2709]水的二分加验证.可是好像被读入萎到了... [BZOJ3229]强大的算法见此.被机房的一堆大神"推荐".于是被坑了...写了一个下午... [BZOJ3631 ...
- 【ALearning】第二章 Androidproject知识介绍
本章介绍了主要的初步Androidproject成立了一个开发环境.为了Android意识的整体项目和理解.本章包含Android开发环境的搭建.第一Android工程Hello World与Andr ...