紧接着前面的那篇博客继续加上代码实现一个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
分享到:
相关推荐
2. **Binder**: Service通过实现IBinder接口,提供一个 Binder 对象给Activity绑定。Activity通过bindService()方法获取到Binder对象,从而可以直接调用Service的方法。这种方式效率较高,但需要编写较多代码,并且...
要实现Service的常驻,首先需要创建一个继承自`Service`的类,并在其中设置必要的逻辑。然后,在`AndroidManifest.xml`中声明这个Service,并设置启动模式为`START_STICKY`或`START_NOT_STICKY`,这将使得服务在被...
此外,还可以通过`bindService()`来绑定Service,这种方式通常用于提供一个接口供其他组件与Service进行交互。绑定服务时,`onCreate()`和`onStartCommand()`可能不会被调用,而`onBind()`会被调用来返回一个`...
在本资源"android应用锁的实现"中,我们可能找到一个简单实现这一功能的示例代码。以下是关于Android应用锁实现的一些关键知识点: 1. **权限管理**:在Android系统中,为了实现应用锁,首先需要获取相应的权限。...
默认情况下,Android只会启动一个Service,即使有多个Service声明了相同的ACTION。这可能导致某些Service无法正常启动,或者开发者期望的行为没有得到满足。 为了解决这个问题,Android提供了几种策略来处理这种...
在Android开发中, AccessibilityService 是一个非常重要的服务接口,它允许应用在用户与系统交互时获取到相关的事件,比如点击、触摸屏幕或者按下系统按键。这个功能被广泛应用于辅助功能应用,例如为视力障碍者...
总结,要在Android Studio中实现Service在app退出后继续运行并开机自启动,需要理解Service的生命周期,正确配置BroadcastReceiver,以及采取保活策略。同时,对App的卡死崩溃进行监控和处理,以提升用户体验和应用...
这个"android demo,Service服务在android中的应用源代码"是一个示例,展示了如何在Android应用程序中有效地使用Service组件。 在Android开发中,Service主要分为两种类型:Start Service和Bind Service。Start ...
创建一个Service需要继承`Service`类并重写关键方法,如`onStartCommand()`。在`onCreate()`中初始化资源,在`onStartCommand()`中接收启动服务的请求,执行任务,然后在`onDestroy()`中释放资源。例如: ```java ...
在Android应用开发中,Service是用于执行长时间运行操作的一个组件,比如后台下载任务。本教程将详细介绍如何使用Android Service来实现文件下载,并在前台显示进度,同时通过通知栏同步更新下载进度。 首先,我们...
通过以上步骤,我们就可以实现Service通过Messenger更新UI的功能。这种通信方式适用于Service与Activity之间的简单交互,如果需要更复杂的交互,可以考虑使用AIDL(Android Interface Definition Language)。 在...
Android 用Service+OKHttp实现应用后台检测更新示例代码; Android 用Service+OKHttp实现应用后台检测更新示例代码 Android 用Service+OKHttp实现应用后台检测更新示例代码 Android 用Service+OKHttp实现应用后台...
本文将深入探讨“Android Service之bound实现”,理解如何通过绑定服务(Bound Service)来创建一个与应用程序组件交互的服务。 首先,我们要了解服务的两种基本类型:Start Service和Bound Service。Start Service...
Foreground Service会显示一个通知,告知用户服务正在运行,即使在用户离开应用或者设备屏幕关闭的情况下,服务也会保持运行状态,提高了服务的优先级,防止被系统因为内存不足而杀死。创建Foreground Service需要...
描述中的“binder继承一个接口,实现方法”涉及到了Service的远程通信机制。在Android中,Service可以通过Binder进行跨进程通信(IPC)。Binder是Android系统提供的一个接口,可以将对象的引用跨越进程边界传递,...
在Android系统中,Service是一种可以在后台长时间运行的组件,它不提供...以上就是关于Android开机自启动Service的实现细节,理解并掌握这些知识点对于开发者来说至关重要,特别是在设计需要在后台持续运行的应用时。
当Service需要在不同应用间共享数据或功能时,我们可以定义一个AIDL接口,该接口描述了客户端和服务端之间的通信协议。服务端实现这个接口,客户端通过调用bindService()并传递AIDL接口,从而能够跨进程调用Service...
在这个"android 录音机 service 例子"中,我们将深入探讨如何结合Service和MediaRecorder来创建一个能够后台录制音频的应用。 1. **Service基础** Service组件是Android应用开发中的关键部分,它可以在没有用户...
首先,`startService`是启动一个Service的方式,它适合那些不需要与启动Service的应用组件直接交互的情况。当你调用`startService`时,Service会经历创建、启动和执行onStartCommand()回调的过程。在这个回调中,...
首先要说的是,用户可能把这种做法视为流氓软件。大部分时候,程序员也不想把软件做成流氓软件,没办法,领导说了算。 我们在使用某些Android应用的时候,可能...这个比较简单,网上的资料够多,只要实现一个Broadcast