Android四大组件之一Service

原创 2018年04月16日 19:51:12

1.Service是什么?

       Service是一种在后台运行的组件,它不依赖于任何用户界面,用于执行长时间运行的操作或为远程进程执行作业。是Android中实现程序后台运行的解决方案,因此非常适用于那些不需要和用户进行交互而且还要求长期运行的任务。

2、两种Service生命周期

  1.StartService:onCreate--->onStartCommand(执行多次)------>onDestroy(只执行一次)

            应用退出,但后台没有杀死,服务还在

  2.bindService:onCreate----->onBind----->onunBInd----->onDestoroy(都只执行一次)

            应用退出服务就被杀死

3.两种启动模式

  1. startService  (启动的服务)

   2.  bindService(绑定的服务)

   3.区别

  •         startService启动的service,service会一直在后台运行,就算调用这已经死掉。服务器还是会运行
  •         bindService是将调用者和service是绑定在一起的关系,如果调用者退出了,service就会掉用onUNBind进行解绑,然后onDestory销毁。

4.Activity和Service如何进行通信

    1.startService         可以通过广播来实现通信

      2.BindService        当Activity通过bindService来绑定一个Service时,bindService会立即返回,他不会返回Ibinder给客户端,要接受IBinder,客户端Activity必须创建一个长连接ServiceConnection的实例并传给bindService(),ServiceConnection包含一个会掉方法,系统掉用次方法来床底要返回的IBinder


5.Service能否执行耗时任务?

不能执行耗时操作,因为service是在主线程运行的。但是可以用开启一个子线程来进行耗时操作,IntentService是继承并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作 在OnHandleIntent方法中做耗时操作

6.Service和Thread的区别

    Thread 

  •         是程序执行的最小单元,他是分配CPU的基本单位,可以来执行一些异步操作,室友应用程序托管
  •           运行时独立于Activity的,没有办法在不同的Activity中对同一Thread进行控制。

    Service 

  • 是系统的组件,有系统进程托管
  • 运行在进程中的主线程中的 可以在任何地方调用Context.startService,Context.stopService,Context.bindService,Context.unBindService来控制它,在Service中注册广播,其他地方发送广播来控制它

7.Service的优先级

    可以用setForegroup(true)来设置Service的优先级。默认启动的Service是别标记为backgroup,也就说比给的Service设置了foregroup那么他就和正在运行的Activit类似优先级得到了一定的提高。 也可以掉用StopForegroup(boolean)将Service置为backgroud的状态。

Android四大组件教程——Activity

-
  • 1970年01月01日 08:00

Android四大组件之Activity(四种基本启动模式)

一,四种基本启动模式 使用: 在AndrManifest清单列表中的Activity中使用,使用方式:android:launchMode="启动模式"    1,standard(默认启动模式...
  • u014321386
  • u014321386
  • 2016-09-04 21:39:51
  • 293

Android四大组件之Service全面学习

什么是服务Android 的服务是 Android 四大组件之一,其他的三大组件是Activity、Broadcast Receiver、Content Provider。 它是程序运行在后台的解决方...
  • tutucoo
  • tutucoo
  • 2017-11-18 12:50:12
  • 549

Android中四大组件以及如何避免anr

一个Android程序有四大基本组件,但只有activity是必须有的 1,activity:可视化的交互界面,   为一个Android程序添加一个activity的步骤是           ...
  • zrf1335348191
  • zrf1335348191
  • 2015-12-15 14:25:11
  • 1752

android四大组件之ContentProvide

在应用程序中很多内容是共享的(可以被多个程序访问),如系统的电话本程序,短信,媒体库等程序都实现了数据的共享,当然其使用的就是内容提供器 ContentProvider :主要用于在不同的应用程序之...
  • WannerWang
  • WannerWang
  • 2015-11-06 10:53:57
  • 1312

Android四大组件:Service史上最全面解析

前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍对Service进行全面介绍(基础认识、生命周期、使用和应用场景) 目录1. 基础知识 定义:服务,属于Android中的计...
  • carson_ho
  • carson_ho
  • 2016-11-14 16:08:45
  • 2577

Android四大组件之一服务

Android四大组件之一服务的启动与基本使用 activity与进程的通信 AIDL实习远程进程的通信...
  • u012761617
  • u012761617
  • 2016-03-10 22:07:59
  • 251

Android开发四大组件之Service(详解篇)

Service是android系统中的四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它跟Activity的级别差不多,区别是Se...
  • fengyuzhengfan
  • fengyuzhengfan
  • 2014-07-21 11:00:42
  • 5682

Android Studio 四大组件之一 Service简介

Android Studio 四大组件之 Service简介
  • u011402573
  • u011402573
  • 2016-09-09 21:29:19
  • 463

Android 四大组件 Service 服务

1.Service简介 按照使用范围分类: 类别 优点 缺点 区别 应用 本地服务 Local  Service 本地服务在一定程度上节约了资源,另外本地服务因为是在同一进程,因此不需...
  • plain_maple
  • plain_maple
  • 2016-09-18 21:01:33
  • 2390
收藏助手
不良信息举报
您举报文章:Android四大组件之一Service
举报原因:
原因补充:

(最多只允许输入30个字)