`
houyewei
  • 浏览: 5224 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android 实现一个Service应用

阅读更多
紧接着前面的那篇博客继续加上代码实现一个service
利用eclipse制作界面新版的ADT支持直接拖动,很方便的设计自己的UI




首先定义一个Activity
package com.houyewei.myservice;

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;

/*
 * @author:Wynston Hou
 * @email : 
 */

public class MainActivity extends Activity {
	private Button startBtn, stopBtn, bindBtn, unbindBtn;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 设置Activity的界面的布局
		setContentView(R.layout.main);
		// 通过findViewByid
		startBtn = (Button) findViewById(R.id.startButton01);
		stopBtn = (Button) findViewById(R.id.stopButton02);
		bindBtn = (Button) findViewById(R.id.bindButton03);
		unbindBtn = (Button) findViewById(R.id.unbindButton04);
		// 添加监听
		startBtn.setOnClickListener(startlistener);
		stopBtn.setOnClickListener(stoplistener);
		bindBtn.setOnClickListener(bindlistener);
		unbindBtn.setOnClickListener(unbindlistener);

	};

	private OnClickListener startlistener = new OnClickListener() {
		@Override
		public void onClick(View v) {
			Intent intent = new Intent();
			intent.setAction("com.houyewei.myservice.action.MY_SERVICE");
			startService(intent);

		}
	};
	private OnClickListener stoplistener = new OnClickListener() {
		@Override
		public void onClick(View v) {
			Intent intent = new Intent();
			intent.setAction("com.houyewei.myservice.action.MY_SERVICE");
			stopService(intent);
		}
	};

	private ServiceConnection conn = new ServiceConnection() {
		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			Log.i("SERVICE", "连接成功");
			Toast.makeText(MainActivity.this, "断开连接", Toast.LENGTH_LONG).show();

		}

		@Override
		public void onServiceDisconnected(ComponentName name) {
			// TODO Auto-generated method stub

		}

	};

	private OnClickListener bindlistener = new OnClickListener() {
		@Override
		public void onClick(View v) {
			Intent intent = new Intent();
			intent.setAction("com.houyewei.myservice.action.MY_SERVICE");
			bindService(intent, conn, Service.BIND_AUTO_CREATE);

		}
	};
	private OnClickListener unbindlistener = new OnClickListener() {
		public void onClick(View v) {
			Intent intent = new Intent();
			intent.setAction("com.houyewei.myservice.action.MY_SERVICE");
			unbindService(conn);

		}
	};

}


一下是service中的内容
package com.houyewei.myservice;

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 {
	public IBinder onBind(Intent intent) {
		Log.i("SERVICE", "onBInd...................");
		Toast.makeText(MyService.this, "onBInd.........", Toast.LENGTH_LONG)
				.show();
		return null;

	}

	public void onCreate() {
		Log.i("SERVICE", "onCreate........");
		Toast.makeText(MyService.this, "onCreatehaha ........",
				Toast.LENGTH_LONG).show();

	}

	public void onStart(Intent intent, int startId) {
		Log.i("SERVICE", "onStartoing..............");
		Toast.makeText(MyService.this, "onStart....哈哈", Toast.LENGTH_LONG)
				.show();
	}

	public void onDestory() {
		Log.i("SERVICE", "Ondestory.........");
		Toast.makeText(MyService.this, "OnDestory。。。。。hhaha", Toast.LENGTH_LONG)
				.show();

	}

}

在AndroidManifest中定义Service 和Activity


运行结果






  • 大小: 80.5 KB
  • 大小: 54.4 KB
  • 大小: 84 KB
1
0
分享到:
评论

相关推荐

    Android 实现进程及Service常驻之MarsDaemon源码

    要实现Service的常驻,首先需要创建一个继承自`Service`的类,并在其中设置必要的逻辑。然后,在`AndroidManifest.xml`中声明这个Service,并设置启动模式为`START_STICKY`或`START_NOT_STICKY`,这将使得服务在被...

    android多个activity和一个service通信

    2. **Binder**: Service通过实现IBinder接口,提供一个 Binder 对象给Activity绑定。Activity通过bindService()方法获取到Binder对象,从而可以直接调用Service的方法。这种方式效率较高,但需要编写较多代码,并且...

    Android之Service实现比较大小

    此外,还可以通过`bindService()`来绑定Service,这种方式通常用于提供一个接口供其他组件与Service进行交互。绑定服务时,`onCreate()`和`onStartCommand()`可能不会被调用,而`onBind()`会被调用来返回一个`...

    android应用锁的实现

    在本资源"android应用锁的实现"中,我们可能找到一个简单实现这一功能的示例代码。以下是关于Android应用锁实现的一些关键知识点: 1. **权限管理**:在Android系统中,为了实现应用锁,首先需要获取相应的权限。...

    Android 多个service的action 相同冲突 验证demo

    默认情况下,Android只会启动一个Service,即使有多个Service声明了相同的ACTION。这可能导致某些Service无法正常启动,或者开发者期望的行为没有得到满足。 为了解决这个问题,Android提供了几种策略来处理这种...

    android 通过AccessibilityService实现系统按键监听

    在Android开发中, AccessibilityService 是一个非常重要的服务接口,它允许应用在用户与系统交互时获取到相关的事件,比如点击、触摸屏幕或者按下系统按键。这个功能被广泛应用于辅助功能应用,例如为视力障碍者...

    android demo,Service服务在android中的应用源代码。

    这个"android demo,Service服务在android中的应用源代码"是一个示例,展示了如何在Android应用程序中有效地使用Service组件。 在Android开发中,Service主要分为两种类型:Start Service和Bind Service。Start ...

    android Service 实现的四个案例

    创建一个Service需要继承`Service`类并重写关键方法,如`onStartCommand()`。在`onCreate()`中初始化资源,在`onStartCommand()`中接收启动服务的请求,执行任务,然后在`onDestroy()`中释放资源。例如: ```java ...

    Android Service 实现下载,前台、通知栏同步更新

    在Android应用开发中,Service是用于执行长时间运行操作的一个组件,比如后台下载任务。本教程将详细介绍如何使用Android Service来实现文件下载,并在前台显示进度,同时通过通知栏同步更新下载进度。 首先,我们...

    通过Messenger实现Android Service更新UI

    通过以上步骤,我们就可以实现Service通过Messenger更新UI的功能。这种通信方式适用于Service与Activity之间的简单交互,如果需要更复杂的交互,可以考虑使用AIDL(Android Interface Definition Language)。 在...

    【Android studio】service在app直接退出下,整体输出情况,实现开机自启动,一直后台运行

    总结,要在Android Studio中实现Service在app退出后继续运行并开机自启动,需要理解Service的生命周期,正确配置BroadcastReceiver,以及采取保活策略。同时,对App的卡死崩溃进行监控和处理,以提升用户体验和应用...

    Android 用Service+OKHttp实现应用后台检测更新示例代码.rar

    Android 用Service+OKHttp实现应用后台检测更新示例代码; Android 用Service+OKHttp实现应用后台检测更新示例代码 Android 用Service+OKHttp实现应用后台检测更新示例代码 Android 用Service+OKHttp实现应用后台...

    Android Service之bound实现

    本文将深入探讨“Android Service之bound实现”,理解如何通过绑定服务(Bound Service)来创建一个与应用程序组件交互的服务。 首先,我们要了解服务的两种基本类型:Start Service和Bound Service。Start Service...

    Android_Service的高级应用示例

    Foreground Service会显示一个通知,告知用户服务正在运行,即使在用户离开应用或者设备屏幕关闭的情况下,服务也会保持运行状态,提高了服务的优先级,防止被系统因为内存不足而杀死。创建Foreground Service需要...

    android service 简单实例源代码

    描述中的“binder继承一个接口,实现方法”涉及到了Service的远程通信机制。在Android中,Service可以通过Binder进行跨进程通信(IPC)。Binder是Android系统提供的一个接口,可以将对象的引用跨越进程边界传递,...

    【Android】开机自启动Service

    在Android系统中,Service是一种可以在后台长时间运行的组件,它不提供...以上就是关于Android开机自启动Service的实现细节,理解并掌握这些知识点对于开发者来说至关重要,特别是在设计需要在后台持续运行的应用时。

    android service的小实例

    当Service需要在不同应用间共享数据或功能时,我们可以定义一个AIDL接口,该接口描述了客户端和服务端之间的通信协议。服务端实现这个接口,客户端通过调用bindService()并传递AIDL接口,从而能够跨进程调用Service...

    android 录音机 service 例子

    在这个"android 录音机 service 例子"中,我们将深入探讨如何结合Service和MediaRecorder来创建一个能够后台录制音频的应用。 1. **Service基础** Service组件是Android应用开发中的关键部分,它可以在没有用户...

    android-Service的2种应用

    首先,`startService`是启动一个Service的方式,它适合那些不需要与启动Service的应用组件直接交互的情况。当你调用`startService`时,Service会经历创建、启动和执行onStartCommand()回调的过程。在这个回调中,...

    解析Android中如何做到Service被关闭后又自动启动的实现方法

    首先要说的是,用户可能把这种做法视为流氓软件。大部分时候,程序员也不想把软件做成流氓软件,没办法,领导说了算。 我们在使用某些Android应用的时候,可能...这个比较简单,网上的资料够多,只要实现一个Broadcast

Global site tag (gtag.js) - Google Analytics