Service Android多线程编程 当我们在程序中执行一些耗时操作时,比如发起一条网络请求,考虑到网速等原因,服务器未必会立刻响应我们的请求,此时我们就需要将这些操作放在子线程中去运行,以防止主线程被阻塞. 线程的基本用法 新建一个类继承自Thread,然后重写父类的run()方法 class MyThread extends Thread{ @Override public void run(){ //处理具体的耗时逻辑 } } 如何启动这个线程呢,只需要new出一个MyThread的实…
推荐Android入门书籍:第一行代码(郭霖) google官方文档地址:https://developer.android.google.cn/guide/components/activities#CoordinatingActivities Activity 活动是什么? Activity是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互,比如执行拨打电话.拍摄照片.发送电子邮件或是查看地图等操作.一个应用程序中可以包含0个或者多个活动,但不包含任何活动的应用程…
Broadcast 广播机制简介 Android中的广播主要可以分为两种类型:标准广播和有序广播. 标准广播:是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言.这种广播的效率会比较高,但同时也意味着它是无法截断的. 有序广播:是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递.所以此时的广播接收器是有先后顺序的,优先级高的广播接…
Content Provider 内容提供器简介 内容提供器(Content Provider)主要用于在不同的应用程序之间 实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性,目前,使用内容提供器是Android实现跨程序共享数据的标准方式. 在正式学习内容提供器之前,我们需要先掌握另外一个非常重要的知识--Android运行时权限,因为 在学习内容提供器时,我们会用到这方面的知识.另外运行时权限的知识在以后我们的开发过程中还会经常的涉…
Android四大组件之Service Android支持服务的概念,服务是在后台运行的组件,没有用户界面,Android服务可用有与活动独立的生命周期.Android支持两种类型的服务: 本地服务: 本地服务只能由承载该服务的应用程序访问,无法供在设备上运行的其他应用程序访问.客户端调用Context.startService()启动该服务. 远程服务: 远程服务除了可从承载服务的应用程序访问,还可以从其他应用程序访问.远程服务使用AIDL向客户端定义.服务支持onBind()方法,客户端通过…
这几天忙着驾校考试,连电脑都碰不到了,今天总算告一段落了~~Service作为Android的服务组件,默默地在后台为整个程序服务,辅助应用与系统中的其他组件或系统服务进行沟通.它跟Activity的级别差不多,但不能自己运行只能后台运行.service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等, 总之服务总是藏在后台的. ps:Service运行在主线程中的,所…
1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它没有用户界面,所以绝不会到前台来.一旦Service被启动起来,它就与Activity一样.它完全具有自己的生命周期. A Service is an application component that can perform long-running operations in the back…
Android 四大组件之一:service: Service有五个生命周期:onCreat,onStartCommand, onBind,onUnbind, onDestroy 主要有绑定和非绑定两种方式 首相在Activity中设置四个Button,用于测试绑定和非绑定两种方式,按下Button播放音乐,停止音乐,非绑定用StopService停止,绑定方式用Bind Service启动,解绑用unbindService停止. 非绑定:Intent intent=new Intent(Mai…
基本概念: service是android四大组件之一,运行在后台执行耗时操作,并不提供用户界面.其他组件如acticity可以通过startService启动该组件,也可以通过bindService启动并把绑定该组件进行通信. 使用场景 后台下载文件,以及播放音乐等 注意 service运行在主线程中,他不会创建属于自己的线程,也不是运行在独立的线程中,所以在使用的时候,需要自己创建线程,而不应该直接使用,这样会造成ANR错误. service的两种形式 started service 其他组…
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了.Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色.它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务.必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态. 不过,虽然Service几乎被每一个Android程序员所熟知,但并不是每个人都已经将Service的各个知识点都掌握得…
前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍对Service进行全面介绍(基础认识.生命周期.使用和应用场景) 目录 目录 1. 基础知识 定义:服务,属于Android中的计算型组件 作用:提供需要在后台长期运行的服务(如复杂计算.下载等等) 特点:长生命周期的.没有用户界面.在后台运行 2. 生命周期方法详解 具体请看我写的文章:Android:Service生命周期最全面解析 3. Service分类 3.1 Service的类型 分类 3.2 详细介绍 S…
Service 是Android四大组件之一,可以在不显示界面的情况下在后台运行.还有一个作用是通过AIDL来实现进程间通信. Service的启动方式 Service的启动方式有两种,startService()与bindService() startService():onCreate->onStartCommand(旧版本为onStart),结束通过stopService(),回调onDestroy 如果调用startService()方法前服务已经被创建,多次调用startService…
---恢复内容开始--- 1,Service的生命周期…
Service简介 Service是Android系统中的四大组件之一,它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序.Service必须在AndroidManifest.xml中声明.Service有自己的生命周期,可以使用startService()启动一个Service或使用bindService()方法绑定一个已经存在的Service. Service作用 比如我们播放音乐的时候,有可能想边听音乐边干些其他事情,当退出播放音乐的应用,如果不用Service,我们就听不到歌…
Service是Android中四大组件之一,在Android开发中起到非常重要的作用,它运行在后台,不与用户进行交互. 1.Service的继承关系: java.lang.Object → android.content.Context → android.content.ContextWrapper → android.app.Service 2.Sevice定义: Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件.其他应用组件能够启动Service,并且当用户切换…
Android服务 android 的服务有点类似windows的服务,没有界面,在后台长时间运行,如果我们这种需求的话我们就可以使用服务来实现. 服务的典型应用场景: 播放音乐,下载等,如果要在一个广播接收者中执行一些耗时的操作,可以将此操作转交给服务来执行. 服务也有自己的生命周期,但是要是相对Activity要少了许多. 服务的生命周期 图片来自于官方文档 使用服务 如果你想要使用服务,那么必须要有一个来继承[Service ]类,并且在清单文件中配置他. 配置服务:在清单文件中对服务进行…
1. startService和bindService的区别 1. startService: 生命周期: onCreate---onStartCommand---onDestory 与服务的通讯: 无法与服务进行直接通讯 与开启者的关系: 服务一旦开启与开启者(activity)将没有什么联系了,就算开启者销毁了,服务依然存活. 在Settings应用界面中有显示 2. binderSerivce 生命周期: onCreate--onBind--onUnBind--onDestory 与服务通…
服务 服务的生命周期 --- 1 开启服务的生命周期 完整的生命周期:onCreate()-->onStartCommand()-->onDestroy() * 开启服务:onCreate()-->onStartCommand() * 停止服务:onDestroy() * 特点:         1. 服务可以被多次开启,每次开启都执行onStartCommand()方法         2. 服务只能被停止一次,多次停止服务         3. 长期运行在后台 2 bind绑定服务的…
这里主要介绍Service组件的使用. 1.定义一个继承Service的子类 如下: package com.service; import android.app.Service; import android.content.Intent; import android.os.IBinder; public class defaultService extends Service { int mStartMode; // indicates how to behave if the serv…
一旦在项目的任何位置调用了Context的startService() 方法,相应的服务就会启动起来,并回调onStartCommand() 方法.如果这个服务之前还没有创建过,onCreate() 方法会先于onStartCommand() 方法执行.服务启动了之后会一直保持运行状态,直到stopService() 或stopSelf() 方法被调用.注意,虽然每调用一次startService() 方法,onStartCommand() 就会执行一次,但实际上每个服务都只会存在一个实例.所以…
Acticity与Service进行通信如何在活动中指挥service去做事情? 这里就借助onBind()方法了比如说,目前我们希望在MyService里提供一个下载功能,然后在活动中可以决定何时开始下载,以及随时查看下载进度.实现这个功能的思路是创建一个专门的Binder 对象来对下载功能进行管理,修改MyService中的代码,如下所示:public class MyService extends Service { private DownloadBinder mBinder = new…
启动和停止方法主要是通过Intent来实现 以上一篇中的ServiceTest项目为例来启动和停止MyService这个服务 首先修改activity_main.xml中的代码,如下所示:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_p…
在前面了解了什么是多线程和异步消息处理机制后,我们来看一下到底什么是Service. 1. 什么是service(service的作用)一个服务是一个具有较长生命周期但没有用户界面的程序,例如:一个正在从播放列表中播放歌曲的媒体播放器在后台运行service用于在后台完成用户指定的操作,一般不需要与用户交互2. 分类service分为两种: started(启动):当应用程序组件(如activity)调用startService方法启动服务时,服务处于started状态bound(绑定):当应用…
1.HttpRequest package com.joyfulmath.android4example.http; import java.io.BufferedReader; import java.io.InputStreamReader; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet;…
本地服务启动和通过广播的方式回调是非常简单的. 下面介绍远程服务和通过远程回调的方式通知activity的方式. 1.service定义: package com.joyfulmath.globalsearch.imagesearch.service; import java.util.ArrayList; import com.joyfulmath.globalsearch.imagesearch.service.aidl.IBuildService; import com.joyfulmat…
一.Service介绍 Service是Android中实现程序后台运行的解决方案,它非常适合用于去执行那些不需要和用户交互而且还要长期运行的task.Service的运行不需要依赖于任何用户界面,即使当程序被切换到后台,霍州用户打开了另外一个app.Service仍然能够保持正常的运行. 不过需要注意的是,Service不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的app进程.当app进程被杀死,Service也会被杀死. 二.Service生命周期 . 通过startServic…
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就会播放一条广播来告知全校的师生.类似的工作机制其实在计算机领域也有很广泛的应用,如果你了解网络通信原理应该会知道,在一个 IP 网络范围中最大的 IP 地址是被保留作为广播地址来使用的.比如某个网络的 IP 范围是 192.168.0.XXX,子网掩码是 255.255.255.0,那么这个网络的广…
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就会播放一条广播来告知全校的师生.类似的工作机制其实在计算机领域也有很广泛的应用,如果你了解网络通信原理应该会知道,在一个 IP 网络范围中最大的 IP 地址是被保留作为广播地址来使用的.比如某个网络的 IP 范围是 192.168.0.XXX,子网掩码是 255.255.255.0,那么这个网络的广…
前言 ContentProvider作为Android的四大组件之一,是属于需要掌握的基础知识,可能在我们的应用中,对于Activity和Service这两个组件用的很常见,了解的也很多,但是对ContentProvider所知却甚少,所以有必要去整理归纳下其中的内容,讲讲为什么要用ContentProvider这个组件.ContentProvider是什么.ContentProvider用法如何,让大家对ContentProvider有个整体上的理解,方便以后在开发过程中如果忘记了可以及时回顾…
BroadCast的定义: 广播是一种订阅--通知 事件,广播接收者向Android系统 register (订阅广播),广播发送者向Adnroid系统 sendBroadCast(发送广播),然后Android 系统通知所有注册该广播的接收者,广播接收者收到自己注册的广播之后实现自己想做的事情(该事情一般不超过10s,否则应用会出现ANR). BroadCast的分类: 1.无序广播:也就是普通广播,只要注册了该action的广播接收者都能收到该广播,且没有先后顺序. 2.有序广播:广播接收者…