`
jk138
  • 浏览: 153792 次
  • 性别: Icon_minigender_1
  • 来自: 茂名
社区版块
存档分类
最新评论

Android实例三:学习Service

阅读更多

第一步.MainActivity.java

 

 

package com.chaowen;

import android.app.Activity;
import android.app.Service;
import android.content.ComponentName;
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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
   private Button startButton,stopButton,bindButton,unbindButton;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        startButton = (Button)findViewById(R.id.startButton);
        stopButton = (Button)findViewById(R.id.stopButton);
        bindButton = (Button)findViewById(R.id.bindButton);
        unbindButton = (Button)findViewById(R.id.unbindButton);
        
        //添加监听器
        startButton.setOnClickListener(startListener);
        stopButton.setOnClickListener(stopListener);
        bindButton.setOnClickListener(bindListener);
        unbindButton.setOnClickListener(unbindListener);
        
    }
    
    
    
    //启动Service监听器
    private OnClickListener startListener = new OnClickListener() {
		
		@Override
		public void onClick(View v) {
		//创建Intent
			Intent intent = new Intent();
			//设置Action属性
			intent.setAction("com.chaowen.action.MY_SERVICE");
			//启动该Service
			startService(intent);
		}
	};
	
	
	//停止Service监听器
	private OnClickListener stopListener = new OnClickListener() {
		
		@Override
		public void onClick(View v) {
		   Intent intent = new Intent();
		   intent.setAction("com.chaowen.action.MY_SERVICE");
		   stopService(intent);
			
		}
	};
	
	
	
	//连接对象
	private ServiceConnection connection =new ServiceConnection() {
		//断开时调用
		@Override
		public void onServiceDisconnected(ComponentName name) {
			//输出日志
			Log.i("Service", "断开连接");
			//通过Toast显示信息
			Toast.makeText(MainActivity.this, "断开连接", Toast.LENGTH_LONG).show();
		}
		//连接时调用
		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			//输出日志
			Log.i("Service", "连接成功");
			//通过Toast显示信息
			Toast.makeText(MainActivity.this, "连接成功", Toast.LENGTH_LONG).show();
		}
	};
	
	
	//绑定Service监听器
	private OnClickListener bindListener = new OnClickListener() {
		
		@Override
		public void onClick(View v) {
			Intent intent = new Intent();
			intent.setAction("com.chaowen.action.MY_SERVICE");
			bindService(intent, connection, Service.BIND_AUTO_CREATE);
			
		}
	};
	
	//解除绑定Service监听器
	private OnClickListener unbindListener = new OnClickListener() {
		
		@Override
		public void onClick(View v) {
			Intent intent = new Intent();
			intent.setAction("com.chaowen.action.MY_SERVICE");
			unbindService(connection);
		}
	};
}

   第二步.MyService.java

   package com.chaowen;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class MyService extends Service {

	@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();
	}
	
	
	@Override
	public void onStart(Intent intent, int startId) {
		 Log.i("SERVICE", "onStart");
		 Toast.makeText(MyService.this, "onStart...", Toast.LENGTH_LONG).show();
	}
	
	@Override
	public void onDestroy() {
		 Log.i("SERVICE", "onDestroy");
		 Toast.makeText(MyService.this, "onDestroy...", Toast.LENGTH_LONG).show();
	}
}

  第三步.main.xml

  <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button
  android:text="启动Service"
  android:id="@+id/startButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  />
  
  
  <Button
  android:text="停止Service"
  android:id="@+id/stopButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  />
  
  <Button
  android:text="绑定Service"
  android:id="@+id/bindButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  />
  
  <Button
  android:text="解除绑定"
  android:id="@+id/unbindButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  />
  
</LinearLayout>

   第四步.AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.chaowen"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="4" />

    <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.chaowen.action.MY_SERVICE" />
             </intent-filter>
        
        </service>
    </application>
</manifest>

 

 

  • 大小: 15.6 KB
  • 大小: 14.2 KB
分享到:
评论

相关推荐

    android service 简单实例源代码

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

    Android实例四:BroadCast_Receiver

    这篇博客"Android实例四:BroadCast_Receiver"将深入探讨如何在实际项目中使用BroadcastReceiver。 首先,我们需要了解BroadcastReceiver的基本概念。BroadcastReceiver是一个抽象类,用于接收并处理系统或应用广播...

    android开发实例大全_王东华

    全书分为18章,分别讲解了UI布局实例集锦、控件实例集锦、自动化服务实例集锦、数据存储实例集锦、电话和短信实例集锦、图形图像实例集锦、和网络有关的实例集锦、多媒体实例集锦、Google地图实例集锦、GoogleAPI...

    Android开发实例:手机助手 源码

    在Android开发领域,实例是学习和提升技能的重要途径。"Android开发实例:手机助手 源码"是一个供开发者研究和学习的项目,它涵盖了多种Android应用开发的关键技术和实践。这个手机助手应用可能包含了诸如设备管理、...

    Android开发实例:打电话.zip

    在Android平台上进行应用程序开发时,...通过这个实例,开发者可以学习到如何在Android应用中实现拨打电话的功能,同时理解权限管理、Intent的使用以及用户交互设计等核心概念。这将有助于构建更完善的Android应用。

    Pro Android学习:Http service小例子

    在这个“ProAndroid学习”系列中,我们将关注如何使用HttpURLConnection或者第三方库如OkHttp来创建HTTP服务。 1. **HttpURLConnection**:这是Android SDK内置的网络请求API,可以用来发送GET和POST请求。我们可以...

    Android 实例 源码 39个

    总之,"Android 实例 源码 39个"是一个全面的学习资源,通过实践这些实例,开发者可以从中学到Android开发的各个方面,从而提升自己的专业能力。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    android基础知识05:四大组件之service 01实例程序2

    这个实例程序源自博客文章《android基础知识05:四大组件之service 01实例程序2》,它为开发者提供了关于如何在Android应用中实现和使用Service的实践指导。 首先,Service是Android中的后台运行组件,它可以长时间...

    Android 手机编程实例源码:Widget 源代码

    这个“Android手机编程实例源码:Widget源代码”压缩包包含了一系列关于Android Widget开发的实践示例,对于学习和理解如何创建自定义Widget具有极高的价值。 首先,Android Widget主要由AppWidgetProvider、布局...

    Android Service简单实例

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

    android开发实例:音乐播放器 内含源码及说明文档

    通过分析这个音乐播放器实例,开发者可以深入学习到Android多媒体编程、服务、UI设计、线程管理等多个核心领域,这对于提升Android开发技能非常有帮助。源码和说明文档将提供具体的实现细节,有助于理论与实践相结合...

    android intent service 实例

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

    android service实例

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

    android 实例源码 集合

    在Android开发领域,掌握实例源码是提升技能和理解系统工作原理的重要途径。"android 实例源码 集合" 提供了多种Android应用程序的源代码,这为我们提供了宝贵的参考资源,帮助开发者深入理解Android应用开发的各种...

    Android创意实例详解书籍源码

    本资源包含了一系列Android应用实例的源代码,旨在帮助开发者通过实际操作来探索和学习Android开发的创新方法。 首先,我们要明确,Android创意实例是展示如何在平台上实现各种独特功能和交互方式的示例。这些实例...

    Android PPT及实例代码.rar

    在本压缩包“Android PPT及实例代码.rar”中,主要包含了两个部分:Android实例代码和相关的PPT教学材料。这些资源是针对Android开发的学习资料,适用于初学者和有一定经验的开发者,旨在通过实例和理论讲解,深入...

    Android 的 Remote Service 开发实例RemoteService

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

    android基础知识05:四大组件之service 02:远程调用实例程序

    在"android基础知识05:四大组件之service 02:远程调用实例程序"中,我们探讨的是如何在不同的应用之间通过AIDL(Android Interface Definition Language)进行远程服务调用。AIDL是Android提供的一种机制,用于在...

    android基础知识05:四大组件之service 01实例程序

    启动Service: ```java Intent intent = new Intent(this, MyService.class); startService(intent); ``` 绑定Service: ```java Intent intent = new Intent(this, MyService.class); bindService(intent, new ...

Global site tag (gtag.js) - Google Analytics