Android学习第8天
- 进程的概念
a) 四大组件都运行在主线程中
b) 服务是没有界面的,可理解为没有界面的Activity
c) 进程的优先级
i. Foreground process前台进程:优先级最高,相当于activity执行了onResume()方法,用户正在交互;
ii. Visible process 可视进程:一直影响用户看得见,相当于Activity执行了onPause()方法
iii. Service process 服务进程:通过startService()方法开启了一个服务
iv. Background process 后台进程:相当于Activity执行了onStop()方法,界面不可见,Activity并没有销毁
v. Empty process 空进程:不会维持任何组件运行
- start开启服务的服务和特点
a) 定义四大组件的方式是一样的
b) 定义一个类继承Service
c) 特点:
i. 第一次点击按钮开启服务,服务执行onCreate
ii. 第二次点击按钮再次开启服务,服务执行onStart方法
iii. 服务一旦被开启,服务就会在后台长期运行,指导用户手动停止
d) 实时去服务器取数据
- 电话qietingqi案例
a) TelephoneManger
- 使用服务注册特殊的广播接听者
a) 定义广播接收者
b) 写服务用来注册广播接收者
c) 在mMainActivity中开启服务
- bindService开启服务特点
a) 第一次点击按钮会执行服务的onCreate()和onBind()
b) 当onBind返回nullshi onServiceStartConnected()不执行
c) 第二次点击按钮,服务不相应
d) 调用者(Activity)和服务之间不求同生,但求同死
e) 服务不可以多次解绑
f) Bind方式开启的服务在设置页面找不到
- 为什么要引入bindService
a) 为了调用服务的方法
- 通过bindService方式调用服务方法的过程
a) 在服务内部定义一个方法,让activity去调用
b) 在服务的类里定义一个中间人类继承IBinder
c) 把定义的中间人对象在onBind方法里面返回
d) 在MainActivity的onCreate方法里面调用服务类的对象的目的是为了获取定义的中间人对象
e) 获取中间人对象
f) 达到中间人对象可以间接调用服务里面的方法
g) 当Activity销毁时解绑服务
- 通过接口方式调用服务里面的方法
a) 定义一个接口,把想暴露的方法定义在接口里面
b) 定义中间人对象实现我们自己定义的接口
c) 获取中间人对象,间接调用服务里面的方法
- 混合方式开启服务
a) 需求:想让服务在后台长期运行,又想调用服务里面的方法
b) 步骤:
i. 先调用startService方法开启服务,保证在后台长期运行
ii. 调用bindService方法,获取中间人对象
iii. 调用unbindService方法,解绑服务
iv. 调用stopService方法
- Aidl介绍
a) 本地服务:运行自己应用里面的服务
b) 远程服务:运行在其他应用里面的服务
c) 实现进程间通信:IPC
d) Aidl:专门用来解决进程之间的通信
e) 使用步骤:
i. 把IService.java改为.aidl文件
ii. Aidl这个语言不认识public,把public去掉
iii. 自动生成IService.java文件,自动生成Stub类继承了Binde实现了Iservicer.aidl
iv. 定义IBinder对象直接继承Stub即可
v. 保证两个应用的aidl文件一样,另外一个应用的aidl所在的报名即可
vi. 获取IBinder方式和在一个应用中调用不一样
Android学习第8天的更多相关文章
- Android学习路线总结,绝对干货
title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...
- Android 学习资源
下面这些资源对Android开发来说是很有帮助的! 最常用的: Android开发官方网站:http://developer.android.com/index.html 这个网站应该是Android ...
- Android学习资料收集
1.Android 学习之路 http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/
- Android学习——第一个NDK程序
在前面的学习中,我们已经讲解了关于NDK编程的环境搭建流程,简单的使用我们也通过官网本身自带的例子进行说明了.可是相信大家一定还存在这么的一个疑惑:“如果我要自己利用NDK编写一个Android应用, ...
- Android学习——windows下搭建Cygwin环境
在上一篇博文<Android学习——windows下搭建NDK_r9环境>中,我们详细的讲解了在windows下进行Android NDK开发环境的配置,我们也讲到了在NDk r7以后,我 ...
- Android学习——windows下搭建NDK_r9环境
1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...
- Android学习第三天-打包常用命令
在前面<Android学习第一天-adb常用命令>和 <Android学习第二天-android常用命令>两篇博文中,我们重点讲解了adb和android的常用命令,下面我们讲 ...
- 【Android学习】《Android开发视频教程》第一季笔记
视频地址: http://study.163.com/course/courseMain.htm?courseId=207001 课时5 Activity基础概念 1.Android开发技术结构 ...
- Android 学习资料收集
收集整理这份资料灵感来自于 trip_to_iOS, 征得同意引用了该资料的开头描述 收集整理这份资料主要帮助初学者学习 Android 开发, 希望能快速帮助到他们快速入门, 找到适合自己学习资料, ...
- 十一、Android学习第十天——项目开始(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天——项目开始 Android知识点的学习告一 ...
随机推荐
- #WEB安全基础 : HTML/CSS | 0x7HTML5和W3C验证
标准,标准,什么都有标准 你听说过HTML5吗?这是一个新版本,当然也有新标准 我只准备了一个index.html文件 以下是代码 <!DOCTYPE html> <!--告诉浏览器 ...
- 利用OpenStreetMap(OSM)数据搭建一个地图服务
http://www.cnblogs.com/LBSer/p/4451471.html 图 利用OSM数据简单发布的北京地图服务 一.OSM是什么 开放街道图(OpenStreetMap,简称O ...
- AspNetCore.FileLog 一款很不错的日志记录工具
AspNetCore.FileLog 该项目作者为伟哥,GitHub地址:https://github.com/amh1979:该项目维护者为鸟窝,GitHub地址:https://github.co ...
- asyncio异步IO--同步原语
asyncio同步原语与线程(threading)模块同步原语基本类似,但有两点重要区别: asyncio同步原语非线程安全,因此不应被用作系统线程同步(可以使用threading代替): async ...
- ASP.MVC学习资源总结
自己动手写一个简单的MVC框架(第一版) 自己动手写一个简单的MVC框架(第二版) ASP.Net请求处理机制初步探索之旅 - Part 1 前奏 ASP.Net请求处理机制初步探索之旅 - Part ...
- Python函数二(函数名,闭包,迭代器)之杵臼之交
函数名的使用: 函数名可以作为值,赋值给变量. 函数名可以作为参数传参给函数. 函数名可以作为返回值. 函数名可以作为元素存储在容器里. 闭包:在嵌套函数内,使用外层局部变量(非全局变量)就是一个闭包 ...
- Web应用安全测试
偷偷挪用人家的分享: https://blog.csdn.net/aojie80/article/details/43836521 写的很棒 Burp Suite 介绍 https://blog.cs ...
- eclipse去除对js文件的检测
- .NET CORE学习笔记系列(2)——依赖注入[6]: .NET Core DI框架[编程体验]
原文https://www.cnblogs.com/artech/p/net-core-di-06.html 毫不夸张地说,整个ASP.NET Core框架是建立在一个依赖注入框架之上的,它在应用启动 ...
- Mac下的效率工具autojump
(转) IDE 用起来总是得不到满足,Mac 适合搞开发,我也十分喜欢 Mac 系统,当然可以说喜欢 Unix/Linux 系统.今天在 .zshrc 文件中添加了这么几行快捷命令: alias go ...