下面通过一个实例演示如何创建、启动、停止及绑定一个Service,具体步骤:
1、创建一个工程,在main.xml中声明四个Button,分别用来启动Service、停止Service、绑定Service和接触绑定Service
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:id="@+id/startButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="启动"/>
<Button android:id="@+id/stopButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="停止"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:id="@+id/bindButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="绑定"/>
<Button android:id="@+id/unbindButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="解除绑定"/>
</LinearLayout>
</LinearLayout>
2、创建一个MyService,继承自Service,覆盖其生命周期中的方法(onCreate、onStart、onDestroy),并在各个方法中显示信息
public class MyService extends Service{
/* (non-Javadoc)
* @see android.app.Service#onBind(android.content.Intent)
*/
@Override
public IBinder onBind(Intent intent) {
Log.i("Service", "onBind...");
Toast.makeText(MyService.this, "OnBind...", Toast.LENGTH_LONG).show() ;
return null;
}
@Override
public void onCreate() {
Log.i("Service", "onCreate...");
Toast.makeText(MyService.this, "onCreate...", Toast.LENGTH_LONG).show() ;
super.onCreate();
}
@Override
public void onDestroy() {
Log.i("Service", "onDestroy...");
Toast.makeText(MyService.this, "onDestroy...", Toast.LENGTH_LONG).show() ;
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startId) {
Log.i("Service", "onStart...");
Toast.makeText(MyService.this, "onStart...", Toast.LENGTH_LONG).show() ;
super.onStart(intent, startId);
}
}
3、在AndroidManifest.xml配置文件中声明activity和service
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.newcosoft.service"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<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">
<intent-filter>
<action android:name="com.newcosoft.service.action.MY_SERVICE"></action>
</intent-filter>
</service>
</application>
</manifest>
4、接下来在MainActivity分别创建四个OnClickListener监听和ServiceConnection
public class MainActivity extends Activity {
private Button startButton,stopButton,bindButton,unbindButton;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startButton = (Button) this.findViewById(R.id.startButton);
stopButton = (Button) this.findViewById(R.id.stopButton);
bindButton = (Button) this.findViewById(R.id.bindButton);
unbindButton = (Button) this.findViewById(R.id.unbindButton);
startButton.setOnClickListener(startOnClickListener);
stopButton.setOnClickListener(stopOnClickListener);
bindButton.setOnClickListener(bindOnClickListener);
unbindButton.setOnClickListener(unbindOnClickListener);
}
//启动Service监听器
private OnClickListener startOnClickListener = new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("com.newcosoft.service.action.MY_SERVICE");
startService(intent);
}
};
//停止Service监听器
private OnClickListener stopOnClickListener = new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("com.newcosoft.service.action.MY_SERVICE");
stopService(intent);
}
};
//创建连接对象
private ServiceConnection conn = new ServiceConnection(){
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.i("MainActivity", "onServiceConnected");
Toast.makeText(MainActivity.this, "连接成功!", Toast.LENGTH_LONG);
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.i("MainActivity", "onServiceDisconnected");
Toast.makeText(MainActivity.this, "断开连接成功!", Toast.LENGTH_LONG);
}
};
//绑定Service监听器
private OnClickListener bindOnClickListener = new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("com.newcosoft.service.action.MY_SERVICE");
//指定自动创建
bindService(intent, conn, BIND_AUTO_CREATE);
}
};
//接触绑定Service监听器
private OnClickListener unbindOnClickListener = new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("com.newcosoft.service.action.MY_SERVICE");
unbindService(conn);
}
};
}
运行结果如下:
- 大小: 13.6 KB
- 大小: 28 KB
分享到:
相关推荐
ASP.NET与Web Service实例剖析
在这个"android intent service实例"中,我们将深入探讨Intent Service的工作原理、创建过程以及如何在实际应用中使用。 Intent Service的基本概念: 1. 工作队列:Intent Service使用一个工作队列来顺序处理Intent...
在本实例"Service实例-音乐播放器后台服务运行播放"中,我们将探讨如何利用Service组件来实现音乐播放器的后台运行功能。 首先,我们需要创建一个Service类,它是Android应用组件之一,继承自ContextWrapper。这个...
本教程将深入探讨“android--service实例”,讲解如何创建、启动、绑定以及管理Service。 首先,我们来理解Service的基本概念。在Android应用开发中,Service主要用于处理那些不需要用户界面但需要后台运行的任务,...
【Axis开发Web Service实例】 Apache Axis 是一个开源的Web Service框架,它允许开发者轻松地创建和部署Web服务。本文将详细介绍使用Axis开发Web服务的全过程,包括安装、编写服务、发布服务以及客户端调用。 **一...
个人收藏经典及大量的java Web Service 实例项目,基本上都可以正常运行,适合正在学习Web Service技术的你 大量的java Web Service 实例项目,基本上都可以正常运行,适合正在学习Web Service技术的你,里面有10几...
本篇文章将深入探讨如何获取Service实例,以及在实际开发中如何有效地使用Service。 首先,了解Service的基本概念非常重要。Service不同于Activity,它可以在用户不可见的情况下运行,例如播放音乐、后台下载数据等...
本篇文章将深入探讨`Android Service`的实例,帮助开发者更好地理解和运用这一核心功能。 首先,Service的基本概念是:它是一个没有用户界面的后台组件,可以执行长时间的操作,比如播放音乐、处理网络请求或同步...
ASP.NET和Web Service是开发基于Web应用程序的重要技术。...通过深入学习和实践"ASP .NET 与 Web Service 实例剖析",开发者可以提升在Web应用程序开发中的技能,理解如何在不同的系统之间创建可靠的数据交换通道。
【ASP.NET与Web Service实例剖析】是一本专为IT专业人士准备的中文技术书籍,主要针对ASP.NET和Web Service两大技术进行深入浅出的实例解析。作者孙三才通过丰富的实例,帮助读者理解这两种技术的核心概念和应用。 ...
标题中的“简单星座测试Web Service实例代码”指的是一个使用ASP.NET Web Service技术创建的服务,该服务能够接收用户输入的出生日期,然后根据日期返回对应的星座信息。这涉及到了日期处理和星座计算的逻辑,以及...
总的来说,Web Service实例代码演示了如何使用VS2008和SQL Server 2008构建一个简单的数据查询服务。这涉及到了Web服务的生命周期、数据访问、XML序列化和反序列化,以及客户端与服务端的交互过程。通过学习和实践这...
【.NET Web Service实例】是基于C#编程语言的一个演示项目,它展示了如何利用.NET框架构建和使用Web服务。Web服务是一种通过网络进行通信的应用程序,遵循标准的XML(可扩展标记语言)格式,允许不同系统间的互操作...
在"Web Service学习-CXF开发Web Service实例demo(一)"中,我们将专注于SOAP Web Service的实现。以下是一些关键步骤: 1. **创建服务接口**:首先,你需要定义一个Java接口,这个接口会成为你的Web Service接口。...
【ASP.NET】 ASP.NET是微软开发的一种Web应用程序框架,用于构建动态网站、Web应用程序和服务。...通过孙三才先生的"ASP.NET与Web Service实例剖析",我们可以深入理解这两项技术的原理和实践,提升自己的技能水平。
这份"ASP.NET与Web Service实例剖析中文版(PPT)"资料涵盖了这两个主题的关键概念、技术和实际应用,对于学习和理解这两者有极大的帮助。 ASP.NET是.NET Framework的一部分,它提供了一种用于创建动态网站、Web应用...