`
xiehongdong
  • 浏览: 69201 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Service实例

阅读更多

下面通过一个实例演示如何创建、启动、停止及绑定一个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实例剖析

    ASP.NET与Web Service实例剖析

    android intent service 实例

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

    Service实例-音乐播放器后台服务运行播放

    在本实例"Service实例-音乐播放器后台服务运行播放"中,我们将探讨如何利用Service组件来实现音乐播放器的后台运行功能。 首先,我们需要创建一个Service类,它是Android应用组件之一,继承自ContextWrapper。这个...

    android--service实例

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

    个人收藏经典及大量的java Web Service 实例项目,基本上都可以正常运行,适合正在学习Web Service技术的你

    个人收藏经典及大量的java Web Service 实例项目,基本上都可以正常运行,适合正在学习Web Service技术的你 大量的java Web Service 实例项目,基本上都可以正常运行,适合正在学习Web Service技术的你,里面有10几...

    获取Service实例

    本篇文章将深入探讨如何获取Service实例,以及在实际开发中如何有效地使用Service。 首先,了解Service的基本概念非常重要。Service不同于Activity,它可以在用户不可见的情况下运行,例如播放音乐、后台下载数据等...

    android service实例

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

    ASP .NET 与 Web Service 实例剖析

    ASP.NET和Web Service是开发基于Web应用程序的重要技术。...通过深入学习和实践"ASP .NET 与 Web Service 实例剖析",开发者可以提升在Web应用程序开发中的技能,理解如何在不同的系统之间创建可靠的数据交换通道。

    ASP.NET与Web Service实例剖析中文版

    【ASP.NET与Web Service实例剖析】是一本专为IT专业人士准备的中文技术书籍,主要针对ASP.NET和Web Service两大技术进行深入浅出的实例解析。作者孙三才通过丰富的实例,帮助读者理解这两种技术的核心概念和应用。 ...

    简单星座测试 Web Service 实例代码

    标题中的“简单星座测试Web Service实例代码”指的是一个使用ASP.NET Web Service技术创建的服务,该服务能够接收用户输入的出生日期,然后根据日期返回对应的星座信息。这涉及到了日期处理和星座计算的逻辑,以及...

    Web Service实例代码

    总的来说,Web Service实例代码演示了如何使用VS2008和SQL Server 2008构建一个简单的数据查询服务。这涉及到了Web服务的生命周期、数据访问、XML序列化和反序列化,以及客户端与服务端的交互过程。通过学习和实践这...

    .NET Web Service 实例

    【.NET Web Service实例】是基于C#编程语言的一个演示项目,它展示了如何利用.NET框架构建和使用Web服务。Web服务是一种通过网络进行通信的应用程序,遵循标准的XML(可扩展标记语言)格式,允许不同系统间的互操作...

    CXF开发Web Service实例demo

    在"Web Service学习-CXF开发Web Service实例demo(一)"中,我们将专注于SOAP Web Service的实现。以下是一些关键步骤: 1. **创建服务接口**:首先,你需要定义一个Java接口,这个接口会成为你的Web Service接口。...

    ASP.NET与Web Service实例剖析中文版.ppt

    【ASP.NET】 ASP.NET是微软开发的一种Web应用程序框架,用于构建动态网站、Web应用程序和服务。...通过孙三才先生的"ASP.NET与Web Service实例剖析",我们可以深入理解这两项技术的原理和实践,提升自己的技能水平。

    ASP.NET与Web Service实例剖析中文版(PPT)

    这份"ASP.NET与Web Service实例剖析中文版(PPT)"资料涵盖了这两个主题的关键概念、技术和实际应用,对于学习和理解这两者有极大的帮助。 ASP.NET是.NET Framework的一部分,它提供了一种用于创建动态网站、Web应用...

    ASP.Net与 Web Service实例分析

    1. **Web Service实例分析**:在ASP.NET中,Web Service通常以.asmx文件形式存在,通过HTTP协议暴露其功能。客户端通过发送XML消息调用服务,接收返回的XML响应。 2. **ASP.NET与Web Service结合**:ASP.NET页面...

Global site tag (gtag.js) - Google Analytics