`

Android service实例

 
阅读更多
首先继承Service

package com.tcl.kang.demo;

import com.tcl.kang.demo.ICountService;

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

public class MyService extends Service
{
	
	
	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
	}
	
	
	private ICountService.Stub myBinder = new ICountService.Stub()
	{		
		@Override
		public int getCount() throws RemoteException
		{
			// TODO Auto-generated method stub
			return 0;
		}
	};

	@Override
	public IBinder onBind(Intent intent)
	{
		// TODO Auto-generated method stubk
		return myBinder;
	}

}



创建一个aidl文件 ICountService.aidl,这时会在gen目录下生成一个java文件,将java文件打包成jar。
package com.tcl.kang.demo;

interface ICountService
{
	int getCount();
}


修改manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="com.tcl.kang.demo" android:versionCode="1"
	android:versionName="1.0">
	<application>
	<service android:name=".MyService">
		<intent-filter>
			<action android:name="com.tcl.kang.demo.MyService" />
			<category android:name="android.intent.category.DEFAULT" />			
		</intent-filter>
	</service>
	</application>
	<uses-sdk android:minSdkVersion="8" />

</manifest> 


客户端:首先包含刚才的jar包,

package com.tcl.testservice2;

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.os.RemoteException;
import android.util.Log;

import com.tcl.kang.demo.ICountService;

public class TestService2Activity extends Activity {
	private ICountService countService;	
	private ServiceConnection myConnection = new ServiceConnection()
	{

		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			countService = (ICountService.Stub.asInterface(service));
			try {
				Log.v("", "kang: count="+countService.getCount());
			} catch (RemoteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

		@Override
		public void onServiceDisconnected(ComponentName name) {
			// TODO Auto-generated method stub
			countService = null;
		}
	
	};
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        bindService(new Intent("com.tcl.kang.demo.MyService"),myConnection, BIND_AUTO_CREATE);        
    }
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		unbindService(myConnection);
	}
    
}
分享到:
评论

相关推荐

    android service 简单实例源代码

    本篇文章将深入解析"android service 简单实例源代码",帮助你理解如何在Android应用中创建和使用Service。 首先,我们来了解一下Service的基本概念。Service主要分为两种类型:标准Service和IntentService。标准...

    Android Service实例

    Android Service实例的使用是开发者必备的技能,尤其对于那些需要在后台持续运行的任务,如音乐播放、定时任务或者网络通信等场景。 **服务的生命周期** Service的生命周期由系统控制,主要涉及以下方法: 1. `...

    android service实例

    本篇文章将深入探讨`Android Service`的实例,帮助开发者更好地理解和运用这一核心功能。 首先,Service的基本概念是:它是一个没有用户界面的后台组件,可以执行长时间的操作,比如播放音乐、处理网络请求或同步...

    Android实例三:学习Service

    本实例将深入探讨如何在Android应用中使用Service,包括Service的基本概念、生命周期、启动方式以及与Activity的交互。 Service的基本概念: Service是Android系统中的一个组件,用于在后台执行任务,例如播放音乐...

    android service 实例

    本实例将深入探讨Android Service的使用、实现及其相关知识点,结合源码分析来提升对Service的理解。 1. **Service基础概念** - Service是在Android系统中用于在后台执行长时间运行操作而没有用户界面的应用组件。...

    Android Service简单实例

    本篇文章将深入探讨`startService`类型的Android Service,通过一个简单的实例来展示其工作原理和使用方法。 `Service`分为两种主要类型:`Start Service`和`Bound Service`。`Start Service`主要用于执行非交互式...

    android intent service 实例

    在这个"android intent service实例"中,我们将深入探讨Intent Service的工作原理、创建过程以及如何在实际应用中使用。 Intent Service的基本概念: 1. 工作队列:Intent Service使用一个工作队列来顺序处理Intent...

    android service的小实例

    本文将通过四个小实例详细介绍Android Service的四种启动方式:启动方式、绑定方式、线程方式以及AIDL(Android Interface Definition Language)方式。 1. 启动方式的Service 启动方式的Service是最常见的,它在...

    android--service实例

    本教程将深入探讨“android--service实例”,讲解如何创建、启动、绑定以及管理Service。 首先,我们来理解Service的基本概念。在Android应用开发中,Service主要用于处理那些不需要用户界面但需要后台运行的任务,...

    Android创意实例详解书籍源码

    7. **多线程与并发**:Android应用需要处理复杂的多线程场景,源码可能包含Handler、AsyncTask、Thread、Service等的使用,以实现后台任务和避免主线程阻塞。 8. **权限管理**:随着Android系统对权限管理的加强,...

    Android 远程Service调用实例

    本实例将详细介绍如何在Android中实现远程Service调用,主要涉及AIDL(Android Interface Definition Language)以及Parcelable接口的使用。 **1. Android远程Service** 远程Service是Android系统中实现不同应用...

    Android 的 Remote Service 开发实例RemoteService

    在Android应用开发中,Remote Service是一种允许不同应用进程间通信并执行操作的服务。Remote Service能够使得应用程序组件(如Activity)可以跨进程调用服务中的方法,实现数据共享或执行耗时任务,而不阻塞用户...

    Android 中service 开发实例

    本教程将深入探讨Android Service的开发实例,帮助开发者理解如何在Android应用程序中使用Service来实现后台任务。 首先,我们需要了解Service的基本概念。Service是在Android系统中运行的一个组件,它可以长时间...

    Android 实例 源码 39个

    8. Android组件:Fragment、Intent、Service、BroadcastReceiver等组件的使用方法也是实例的重要部分,它们构成Android应用的核心架构。 9. 第三方库集成:许多第三方库如ButterKnife、Dagger2、Retrofit、RxJava等...

    Android-Service与Activity传值

    `Service`创建一个`LocalBroadcastManager`实例,发送广播;`Activity`在需要接收数据的地方注册Receiver。 - **使用Binder**:如果`Activity`和`Service`在同一个进程中,可以使用`Binder`。创建一个实现了`...

    Android开发实例大全源码第一部分

    在Android开发领域,实例是学习和提升技能的关键途径。"Android开发实例大全源码第一部分"提供了1-80个案例的源代码,这是一份宝贵的资源,可以帮助开发者深入理解Android应用开发的各种技术和实践。下面将针对这些...

    Android Service Demo

    总之,"Android Service Demo"是一个展示如何利用Service和AIDL进行进程间通信的实例。通过学习和实践这个Demo,开发者可以更好地理解和掌握Android中Service和AIDL的使用,提升应用的扩展性和功能。在开发过程中,...

Global site tag (gtag.js) - Google Analytics