iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android服务Service的用途是什么
  • 887
分享到

Android服务Service的用途是什么

2023-06-25 12:06:46 887人浏览 泡泡鱼
摘要

本篇内容介绍了“Android服务Service的用途是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:Android的服务是开发A

本篇内容介绍了“Android服务Service的用途是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

前言:

Android的服务是开发Android应用程序的重要组成部分。不同于活动Activity,服务是在后台运行,服务没有接口,生命周期也与活动Activity非常不同。通过使用服务我们可以实现一些后台操作,比如想从远程服务器加载一个网页等。服务能帮助我们在Android中实现多任务。

  我们已经知道,安卓的活动可以启动,停止,当系统资源太低时可以销毁,服务被设计为实现具有更长执行时间的任务。安卓的服务可以从活动Activity中启动,也可以从一个广播接收器和其他服务中启动。

  必须注意,使用服务并不需要自动创建新的线程,所以如果在服务中我们实现一个简单的逻辑,这不需要很长的时间去处理,我们其实不需要将它运行在单独的线程。但是如果我们要实现复杂的逻辑,用很长一段时间去处理,我们就必须采取创建一个新线程去执行,否则在主线程上运行服务,可能会导致ANR问题。

1、服务用途

服务适合两种用途:

  • 实现多任务

  • 激活 Inter-Process-Communication (IPC) 流程间通讯

第一种情况的典型的例子是: 需要从远程服务器下载数据,在这种情况下,我们可以让应用同时与用户进行交互,并在后台开始完成工作,而用户可以继续使用应用程序,当服务完成后发送一个消息给用户。

在第二种情况下,我们可以通过服务“共享”一些常用的功能,使不同的应用程序可以重用这些功能。例如,假设我们有一个发送电子邮件的服务,我们希望在几个应用程序共享此服务,这样不必重写相同的代码。在这种情况下,我们可以使用IPC使服务公开,这个服务向“远程”暴露接口,被其他应用程序调用。

下面是一个简单的服务,继承Service

2、继承Service

public class TestService extends Service {    @Override    public IBinder onBind(Intent arg0) {               return null;    }}

服务是有生命周期的,可以实现其中一些回调方法:

public class TestService extends Service {    @Override    public void onCreate() {               super.onCreate();    }    @Override    public void onDestroy() {               super.onDestroy();    }     @Override    public int onStartCommand(Intent intent, int flags, int startId) {               return super.onStartCommand(intent, flags, startId);    }    @Override    public IBinder onBind(Intent arg0) {               return null;    }}

  只有服务被创建时,方法onCreate才会被唯一的调用一次。如果该服务已在运行这个方法将不会被调用。我们也不是直接调用它,操作系统OS调用这个方法。

  OnStartCommand是最重要的方法,因为它被调用的时候,我们需要启动服务。在这个方法中,我们需要向我们运行的服务传递意图,这样我们就可以与服务交换一些信息。在这个方法中实现的逻辑可以直接在这个方法中被执行,如果执行很花费时间,我们就需要创建一个线程。正如你可以看到这个方法要求我们返回一个整数作为结果。此整数表示服务如何由操作系统来处理。

  • START_STICKY :使用这个返回值,如果OS杀死我们的服务,它会重新创建它,但是发往该服务的意图Intent不会再被传递,这种方式下服务总是在运行。

  • START_NOT_STICKY: 如果OS杀死服务,就不会再创建,直到客户端显式激活onStart 命令

  •  START_REDELIVER_INTENT: 它类似 START_STICKY,意图也会被再传递给该服务。

OnDestroy是在服务销毁时由操作系统调用。

服务需要在Manifest.xml 中配置:

<service android:name=".TestService" android:enabled="true"/>

3、启动和停止服务

  正如我们所知道服务必须首先被启动,并在完成它的任务后最终停止。我们可以从活动Activity启动它,我们可以使用Intent传递给服务一些信息。假设我们有两个按钮,一个开始和一个停止服务.

btnStart.setOnClickListener(new View.OnClickListener() {     @Override    public void onClick(View v) {        Intent i = new Intent(MainActivity.this, TestService.class);        i.putExtra("name", "SurvivingwithAndroid");               MainActivity.this.startService(i);           }}); btnStop.setOnClickListener(new View.OnClickListener() {     @Override    public void onClick(View v) {        Intent i = new Intent(MainActivity.this, TestService.class);        MainActivity.this.stopService(i);    }});

运行效果如下:

Android服务Service的用途是什么

IntentService

  正如我们前面提到的服务运行在主线程,所以我们在本服务执行一些逻辑要非常小心。必须考虑到,如果这个逻辑是一个阻塞操作,或者需要较长的时间来完成,会导致一个ANR问题发生。在这种情况下,将逻辑转移到一个单独的线程,这意味着我们必须在onStartCommand方法创建线程并运行它。还有另一类称为IntentService的衍生服务,可以简化这些操作。当我们不需要同时处理多个请求,这个类是有用的。这个类创建一个工作线程来处理不同的请求,

功能如下:

  • 创建一个分离线程来处理请求

  • 创建一个请求队列然后传递一个Intent消息

  • 创建onStartCommand的缺省实现

  • 当所有请求被处理后停止服务

public class TestIntentService extends IntentService {    public TestIntentService() {        super("TestIntentService");           }    @Override    protected void onHandleIntent(Intent intent) {    }}

onHandleIntent里面我们实现了逻辑,而无需关心这作业需要半天或更长,因为这种方法在一个单独的线程中运行。

4、自动启动服务

  如果我们想在智能手机开机时启动它,我们先创建一个广播接收器,监听到这个事件,然后启动该服务。

public class BootBroadcast extends BroadcastReceiver {    @Override    public void onReceive(Context ctx, Intent intent) {               ctx.startService(new Intent(ctx, TestService.class));    }}

 Manifest.xml中配置:

<receiver android:name=".BootBroadcast">       <intent-filter >        <action android:name="android.intent.action.BOOT_COMPLETED"/>                   </intent-filter></receiver>

“Android服务Service的用途是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Android服务Service的用途是什么

本文链接: https://www.lsjlt.com/news/304834.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android服务Service的用途是什么
    本篇内容介绍了“Android服务Service的用途是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:Android的服务是开发A...
    99+
    2023-06-25
  • 云服务器的用途是什么
    这篇文章主要讲解了“云服务器的用途是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“云服务器的用途是什么”吧!一、云服务器用于网站空间的选用之前,虚拟主机一直是很多中小企业和个人站长用于网...
    99+
    2023-06-07
  • 服务器租用的用途是什么
    服务器租用的主要用途包括但不限于以下几种: 网站托管:企业或个人可以租用服务器来存放其网站的文件和数据,以确保网站能够稳定地运行...
    99+
    2024-05-13
    服务器
  • android中service的实现方法是什么
    在Android中,有两种常见的实现Service的方法:1. 继承Service类:创建一个继承自Service类的子类,然后重写...
    99+
    2023-09-11
    android service
  • 云服务器用途是什么
    云服务器(Cloud Server)是一种用于存储和共享文件的服务器,通常是由大型互联网公司或组织开发和提供。它们可以通过网络或互联网进行远程访问,使用任何可以访问互联网的设备或软件(如台式机、笔记本电脑、智能手机等)进行访问和存储数据。 ...
    99+
    2023-10-26
    用途 服务器
  • Android中Web Service有什么用
    这篇文章给大家介绍Android中Web Service有什么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android手机平台实际上资源是有限的,不能做大量的运算和储存,对于复杂的应用指南部署在远程服务器上面,而...
    99+
    2023-06-04
  • 租用美国服务器的用途是什么
    租用美国服务器的用途可以有很多种,包括但不限于: 网站托管:将网站和应用程序托管在美国服务器上,以确保用户能够快速访问和加载网站内...
    99+
    2024-04-11
    美国服务器 服务器
  • 云服务器的用法和用途是什么
    云服务器(Cloud Server)是一种常见的云计算服务,它提供了一种存储、备份、管理和访问远程数据的云端平台。以下是它的一些主要用法和用途: 数据备份:当您在云服务器上存储数据时,您可以使用备份工具来确保数据的完整性和安全性。这可以...
    99+
    2023-10-26
    用途 服务器
  • ip代理服务器的用途是什么
    IP代理服务器的主要用途是隐藏用户的真实IP地址,从而保护用户的隐私和增加网络安全性。它可以帮助用户绕过地理限制,访问被封锁的网站或...
    99+
    2024-04-09
    代理服务器
  • 云服务器的主要用途是什么
    本篇内容主要讲解“云服务器的主要用途是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“云服务器的主要用途是什么”吧! 云服务器服务是云计算服务的重要服务之一,是面向各类互联网用户提供...
    99+
    2023-06-07
  • Android Service启动绑定流程是什么
    这篇文章主要介绍了Android Service启动绑定流程是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android Service启动绑定流程是什么文章都会有所收获,下面我们一起...
    99+
    2023-07-05
  • 轻量应用服务器的用途是什么
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-21
  • Android服务Service怎么配置和使用
    要配置和使用Android服务Service,可以按照以下步骤进行操作: 在AndroidManifest.xml文件中注册Ser...
    99+
    2024-03-08
    Android Service
  • python的用途是什么
    python用途有:Web开发、网络爬虫、人工智能、数据分析、自动化运维、系统编程、图形处理、数学处理、文本处理、数据库编程、网络编程、多媒体应用、游戏开发等。...
    99+
    2024-04-02
  • Redis的用途是什么
    Redis是一个开源的内存数据库,常用于缓存、消息队列、会话存储、实时分析等方面。其主要用途包括: 缓存:Redis可以将常用的...
    99+
    2024-04-09
    Redis
  • Enumerable.Cast的用途是什么
    这篇文章的内容主要围绕Enumerable.Cast的用途是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!Enumerable.Cast<...
    99+
    2023-06-18
  • 云服务器主要用途是什么
    云服务器主要用途:把云服务器当虚拟主机使用,云服务器拥有丰富的资源、带宽、和独立IP,且配置可根据需进行配置和灵活调整;搭建对网络品质要求较高的电子商务等平台,云服务器拥有丰富的资源、带宽、和独立IP,基本能满足电商平台的网站需求。搭建数据...
    99+
    2024-04-02
  • 云服务器用途是什么意思
    云服务器是一种虚拟服务器软件,通常用于存储和处理大量数据。它通常用于提供数据存储、处理和共享功能。云服务器提供了多个层次的计算基础设施,包括CPU、内存、存储等硬件资源和网络连接。它可以通过虚拟化技术来实现更高的计算效率和更快的处理速度,以...
    99+
    2023-10-26
    用途 服务器
  • 阿里云服务器用途是什么
    阿里云服务器可以用来存储、分析和管理大量数据,以及提供云计算服务和应用程序,如游戏、视频、搜索和广告。 阿里云服务器用于以下几种用途: 存储和管理大量数据:阿里云服务器可以用来存储大量的数据,并通过数据分析和挖掘来提高数据质量和利用率。...
    99+
    2023-10-26
    阿里 用途 服务器
  • 云服务器的用法和用途是什么呢
    云服务器(Cloud Storage)是一种虚拟的数据存储设备,它可以让多个用户共享一个数据节点。它的用法和用途是非常广泛的,以下是一些例子: 在线存储数据:云服务器可以存储用户的数据,包括图片、视频、文件等,用户可以通过云服务器进行访...
    99+
    2023-10-26
    什么呢 用途 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作