Android
文章平均质量分 95
BrighterLi
这个作者很懒,什么都没留下…
展开
-
Android组件管理框架—前台服务Service之startForegroundService方式启动流程(Android P)
一 前言这节的内容也是由于项目中的一个Bug引起:12-13 10:41:07.520 16661 16661 E AndroidRuntime: FATAL EXCEPTION: main12-13 10:41:07.520 16661 16661 E AndroidRuntime: Process: cn.xxx.xxxxx:remote, PID: 1666112-13 10:...原创 2019-01-22 09:33:35 · 12656 阅读 · 0 评论 -
Android每天一个知识点+Demo—异步消息机制实现
一 前言Handler的由来(1)首先为什么需要Handler呢? 因为UI更新只能在UI线程。(2)那为什么只能在UI线程更新UI呢? 因为Android是单线程模型。(3)那为什么Android是单线程模型? 因为如果任意线程都可以更新UI的话,线程安全问题处理起来会相当麻烦复杂,所以就规定了Android是单线程...原创 2018-09-15 10:32:51 · 234 阅读 · 0 评论 -
Android组件管理框架—视图容器Activity之通信
一 将父Activity的信息传递给子Activity通过Intent(1) 将数据放在Bundle对象中,通过Intent传递。import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.w...原创 2018-11-30 00:56:12 · 177 阅读 · 0 评论 -
Android组件管理框架—视图容器Activity之生命周期
一 Activity简介 一般情况下Activity是与用户交互的接口,它提供了一个用户完成相关操作的窗口。当我们在开发中创建Activity后,通过调用setContentView(View)方法来给该Activity指定一个布局界面,而这个界面就是提供给用户交互的接口。Android系统中是通过Activity栈的方式来管理Activity的,而Activity自身则是通过生命周期...原创 2018-12-02 22:28:49 · 389 阅读 · 0 评论 -
Android每天一个知识点+Demo—跨进程通信机制AIDL入门
一 Why-为什么要用AIDL沙箱理念:在Android中,每个应用(Application)程序都运行在独立的进程中,无法直接调用到其他应用的资源。当一个应用被执行时,一些操作是被限制的,比如访问内存,访问传感器等等。好处:这也保证了当其中一个程序出现异常而不会影响另一个应用程序的正常运转,这样做可以最大化地保护系统。 android在设计理念上强调组件化,组件之间的依赖性很小。案例...原创 2018-09-15 16:37:51 · 649 阅读 · 0 评论 -
Android组件管理框架—视图容器Activity之启动流程(Android P)
一 前言 一般像这种源码调用流程会比较长和绕,我们在分析的时候要有一定学习目标(比如这个实现的功能,为什么这样实现),有目标就不会迷失;先熟悉大致流程;抓住关键地方;某些细节的东西需要的时候再去研究。个人觉得既然研究的对象是源码,那么分析的大部分将还是以源码的形式展示较好。要想在哪方面长进,那么就在那里翻滚;要想懂得深渊,那么请先凝视深渊,这样深渊才会凝视你。学习目标 ...原创 2018-11-23 23:15:39 · 782 阅读 · 1 评论 -
Android组件管理框架—视图容器Activity之启动模式
一 前言 启动一个Activity就是创建一个实例,然后进入任务栈。我们可以通过启动模式来改变这种行为,实现不同的交互效果。每个应用都有一个任务栈,是用来存放Activity,功能类似于函数调用的栈,先后顺序代表了Activity的出现顺序,可以在AndroidManifest.xml中的标签android:launchMode属性设置。 二 启动模式1 四种启动模式...原创 2018-11-25 22:38:04 · 199 阅读 · 0 评论 -
Android组件管理框架—后台服务Service之startService方式启动流程(Android P)
一 前言 Service组件是Android应用四大组件之一,主要用来处理与用户界面无关的逻辑。Service的启动过程与Activity的启动过程是类似的。和Activity一样,启动过程由ActivityManagerService来管理。我们下面分析的是启动的Service和启动者(可以是Activity、Service等)是在同一个进程,在此假设是在Activity启动的。...原创 2018-12-11 23:08:11 · 2018 阅读 · 0 评论 -
Android组件管理框架—视图容器Activity之回退栈
一 前言任务、回退栈概念 一个Task是多个能够和用户进行交互并且能完成某种功能的activities的集合,可以通过getTaskId()方法来获取当前Activity对象所在Task的Id。 这些Activity被被放在一个堆栈(backstack)里,后启动的Activity对象的ActivityRecord会放在Task的栈顶。 Activity启...原创 2018-11-28 22:54:36 · 569 阅读 · 0 评论 -
Android组件管理框架—后台服务Service之bindService方式启动流程(Android P)
一 前言 通过startservice来启动一个service,通常该service是无法返回结果的(这也是与bindservice的区别之一),服务开启, 这个服务和开启他的调用者之间就没有任何的关系了,调用者的生命周期和它的生命周期也没有关系(所以,service在任务完成的时调用stopSelf或stopsService来结束该服务)。 通过bindserv...原创 2019-01-20 23:27:20 · 1547 阅读 · 0 评论 -
Android组件管理框架—后台服务Service之生命周期(Android P)
一 Service生命周期 1 startService()手动调用context.startService:onCreate()——onStartCommand()(service running)手动调用context.stopService:onDestroy()注意:(1) servi...原创 2018-12-23 18:00:11 · 1104 阅读 · 0 评论 -
Android组件管理框架—广播接收者BroadcastReceiver之动态注册流程(Android P)
一 前言 接收广播(Broadcast),必须先要注册接收广播的组件——广播接收者(receiver),广播接收者的注册分为动态注册和静态注册,注册中心是AMS,AMS再把广播分发到各个广播接收者(receiver)。静态动态广播的区别 1 动态注册广播不是常驻型广播,广播跟随Activity的生命周期,在Activity结束前,需要移除广播接收器。 ...原创 2018-12-31 21:46:49 · 1304 阅读 · 0 评论