绑定Service实例
来源:互联网 发布:c语言交流论坛 编辑:程序博客网 时间:2024/06/05 16:52
package com.example.bindservice;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.util.Log;import android.view.View;import android.widget.Button;//使用绑定Service时,回调方法顺序为onCreate--onBind--onUnBind--onDestroy;/** * @author HD * @date 2015-11-18 * @package_name com.example.bindservice * @file_name MainActivity.java */public class MainActivity extends Activity { private static final String TAG = "MainActivity"; public MyService myService; private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton = (Button) findViewById(R.id.button1); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 Intent intent = new Intent(); intent.setClass(MainActivity.this, MyService.class);// 绑定service bindService(intent, conn, Context.BIND_AUTO_CREATE); } }); }// 匿名内部类 private ServiceConnection conn = new ServiceConnection() {// 当service连接失败时候调用此方法 @Override public void onServiceDisconnected(ComponentName name) { // TODO 自动生成的方法存根 Log.i(TAG, "----->>onServiceDisconnected"); myService = null; }// 当service连接成功时候调用此方法,在Service中调用onBind方法时,返回一个ibinder对象到此方法中 @Override public void onServiceConnected(ComponentName name, IBinder service) { // TODO 自动生成的方法存根// 调用在内部类ServiceBinder中的getService方法; myService = ((MyService.ServiceBinder) service).getService(); Log.i(TAG, "----->>onServiceConnected"); } };}
package com.example.bindservice;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;import android.util.Log;/** * @author HD * @date 2015-11-18 * @package_name com.example.bindservice * @file_name MyService.java */public class MyService extends Service { private static final String TAG = "MyService"; boolean threadDisable; int count; public MyService() { // TODO 自动生成的构造函数存根 } @Override public void onCreate() { // TODO 自动生成的方法存根 super.onCreate(); Log.i(TAG, "------>>onCreate");// 在新的线程中启动count++; new Thread(new Runnable() { public void run() { while (!threadDisable) { try { Thread.sleep(1000); } catch (InterruptedException e) { } count++; Log.v("CountService", "Count is" + count); } } }).start(); }// 返回一个实现了IBinder接口的对象; @Override public IBinder onBind(Intent intent) { // TODO 自动生成的方法存根 Log.i(TAG, "------>>onBind"); ServiceBinder binder = new ServiceBinder(); return binder; }// 当解除绑定时候调用这个方法; @Override public boolean onUnbind(Intent intent) { // TODO 自动生成的方法存根 Log.i(TAG, "------>>onUnbind"); return super.onUnbind(intent); } @Override public void onDestroy() { // TODO 自动生成的方法存根 Log.i(TAG, "------>>onDestroy"); super.onDestroy(); this.threadDisable = true; }// 内部类,作为一个Service与Activity的接口 class ServiceBinder extends Binder { public MyService getService() { return MyService.this; } }}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.bindservice" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".MyService"></service> </application></manifest>
**
0 0
- 绑定Service实例
- 实例:创建、启动、停止和绑定一个Service
- 绑定Service
- Service 绑定
- 绑定Service
- Service 绑定
- Android开发笔记---service的绑定及如何获得service实例
- service实例
- 绑定Activity和Service
- service(服务绑定)
- Activity和Service绑定
- service(服务绑定)
- Activity 和Service绑定
- Service 和 Activity 绑定
- Activity 和Service绑定
- 解除Service绑定
- Android:Service非绑定
- Activity 和Service绑定
- Android 超强动态环信比列图 (自定义View)
- ios软件开发-第一课-入门篇
- u-boot中nor flash的sector管理方式
- pAdTy_1 构建图形和动画应用程序
- fedora一些源
- 绑定Service实例
- 【NGUI】Unity中给NGUI添加监听事件,Button,Toggle
- iOS中线程Call Stack的捕获和解析(一)
- [leetcode] 77. Combinations
- Android实现获取验证码效果
- 防 dylib钩子
- cloudera manager5删除uuid,主机找不到集群
- 正则表达式
- 开博篇