Service是android四大组件之一,服务Service是没有与用户交互界面,在后台运行的操作.
一般用来在后台处理比较耗时的操作,比如网络操作,媒体播放,I/O操作,和ContentProvider交互等,但是Service默认还是在主线程中,除非新建一个线程在其中执行Service
需要在Manifest.xml文件中进行注册后才能使用
Service可以分为两类StartedService和BoundService
声明一个Service
声明一个类继承自Service类,在minifest.xml文件中注册
复写onStartCommand()方法允许这个Service可以被startService方法调用
复写onBind()方法允许这个Service可以被Bind
也可以同时重写这两个方法,使Service可以被start也可以bound
Service一些重要的回调方法
onCreate
onStartCommand //在1.6及之前叫做onStart
onBind
onDestory
Service生命周期
启动一个start Service
在一个Activity或者Service中可以启动一个Service
Intent intent=new Intent();
startService(intent);//是最简单的Service启动方式
只要使用了startService()方法,就有必要在之后调用stopSelf()或者stopService()来结束服务
启动一个IntentService
IntentService继承自Service,也是startService来启动,关键是IntentService可以启动另外的一个工作线程来处理Service事务
每次把一个intent传递给onHandleIntent方法进行处理,不用程序员调用stopSelf()方法
启动IntentService的方法与上面一个Service相同
不同的地方是Service继承自IntentService类,并且重写onHandlerIntent方法,通过此方法来进行intent处理
绑定一个Service
要创建一个绑定的Service,需要在Service类中重写onBind()方法来返回一个IBinder对象,提供接口来与Service进行交互
别的控件可以调用bindService()方法来得到这个接口并且调用Service中的服务
//在被绑定的Service类中重写onBind方法,返回一个IBinde对象,可以通过它来得到Service的引用,从而操作Service
//在要绑定service的控件中,比如这里的Activity
//Intent intent=new Intent(this,TestBindService);
//bindService(intent,conn,BIND_AUTO_CREATE); 这里的conn对象是一个ServiceConnection对象
//new一个ServiceConnection对象的话会自动重写onServiceConnected和onServiceDisconnected方法
//比如在onServiceConnected方法中获得返回的Binder
//newBinder getBinder=(newBinder)arg1; 这里arg1是onServiceConnected方法中返回的Binder参数
//TestBindService tbs=(TestBindService)getBinder.getService(); 这里获得了要绑定的Service的引用
//tbs.ServiceFunction(); 再通过这个引用来控制Service执行其中的方法
在前台运行Service
在notification中设置一个进度条来让用户看到Service的执行进度
setForeground(); 被setForeground的Service基本不会被系统回收
分享到:
相关推荐
在Android应用开发中,`Service` 是...综上所述,"Android学习之Service练习"涵盖了Android开发中不可或缺的一部分,通过实际操作,你可以更好地理解Service的工作原理和使用场景,为开发更复杂的应用打下坚实的基础。
### Android学习之Service开机启动详解 #### 一、引言 在Android开发中,有时我们需要让应用程序中的某个服务(Service)在设备启动时自动运行,例如进行后台数据同步、监控某些变化等。为了实现这一需求,可以...
Service是Android四大组件之一,用于在后台长时间运行任务,不受用户界面交互的影响。在这个"android 录音机 service 例子"中,我们将深入探讨如何结合Service和MediaRecorder来创建一个能够后台录制音频的应用。 1...
这个实例程序源自博客文章《android基础知识05:四大组件之service 01实例程序2》,它为开发者提供了关于如何在Android应用中实现和使用Service的实践指导。 首先,Service是Android中的后台运行组件,它可以长时间...
本教程的“android-tutorial”可能包含了一系列关于Android Service的实例代码和详细解释,涵盖从基础到进阶的各种应用场景,对于理解和掌握Service的使用非常有帮助。通过学习和实践这些示例,开发者能够更好地应对...
在Android应用开发中,Service是四大组件之一,它在后台执行长时间运行的操作,不与用户交互。本示例“android的关于service的小Demo”旨在演示如何在Activity中设置数据,并通过Service进行更新。我们将深入探讨...
在"android基础知识05:四大组件之service 02:远程调用实例程序"中,我们探讨的是如何在不同的应用之间通过AIDL(Android Interface Definition Language)进行远程服务调用。AIDL是Android提供的一种机制,用于在...
首先,我们需要了解Android Service的基础知识。Service分为两种类型:标准服务(Foreground Service)和后台服务(Background Service)。在播放音乐这种需要长时间运行且对用户体验至关重要的场景下,通常推荐使用...
服务(Service)是Android四大组件之一,它在后台执行任务,不与用户界面交互。服务可以长时间运行,即使用户离开应用,服务仍然可以持续执行。 **二、远程服务原理** 1. **AIDL(Android Interface Definition ...
在Android应用开发中,四大组件是Activity、Service、BroadcastReceiver和ContentProvider,它们构成了应用程序的基础架构。本篇文章将深入探讨四大组件之一的Service,并通过一个名为"servicesdemo"的示例项目来...
这篇“Android基础教程PPT”旨在引导初学者了解如何使用Eclipse环境进行Android应用开发。首先,我们从创建或导入Android工程开始。 要开启一个新的Android工程,你需要在Eclipse中选择[File]->[New]->[Project],...
标题:“Android BatteryService学习文档” 描述分析:这份文档深入探讨了Android框架中与电池管理相关的知识,特别是BatteryService的工作机制。BatteryService是Android系统服务的一部分,负责监控和报告设备的...
- **SensorManager.java**:自Android 4.1版本起,SensorManager被设计成一个抽象类,定义了一系列基础方法。它是应用程序与传感器交互的主要入口,提供了一组标准的API供开发者使用。 - **SystemSensorManager....
在Android开发中,Service是应用程序组件之一,它可以在后台长时间运行,即使用户界面不在活动状态。Service主要用于执行长时间运行的操作,如播放音乐、处理网络事务等。本话题将深入探讨如何在Android Studio中...
首先,了解Android的Dialog基础知识是必要的。Dialog是在当前Activity之上显示的小窗口,用于与用户进行交互。通常,它包含一个标题、内容和一些按钮。在Activity中弹出Dialog是很简单的,因为Activity有一个与之...
在Android系统中,四大组件是Activity、Service、BroadcastReceiver和ContentProvider,它们是构建应用程序的基础。今天我们将聚焦于"四大组件"之一的Service,详细探讨它在Android开发中的作用以及如何创建一个简单...
Service是Android四大组件之一,它在后台运行,没有用户界面。服务可以用于执行长时间运行的任务,如音乐播放、数据同步或文件下载。服务可以通过`startService()`启动,并通过`stopService()`停止。启动的服务会在...
在Android应用开发中,Service是用于执行长时间运行操作的一个组件,比如后台下载任务。本教程将详细介绍如何使用Android Service来实现文件下载,并在前台显示进度,同时通过通知栏同步更新下载进度。 首先,我们...
在Android系统中,Service是四大组件之一,它与Activity、BroadcastReceiver和ContentProvider共同构成了Android应用的核心架构。Service主要用于在后台执行长时间运行的操作,而无需与用户交互。它不同于线程,...
本教程将聚焦于如何利用基础的网络请求方法和Service组件来实现这一功能。Service是Android系统的一个关键组件,它可以在后台运行,即使用户离开应用程序也能继续执行任务,如下载文件。 首先,我们要创建一个服务...