Android
文章平均质量分 61
Android基础知识
H.ZWei
这个作者很懒,什么都没留下…
展开
-
Android消息机制Hnadler
Handler、Looper、MessageQueue作用与分工Handler:负责发送消息(sendMessage(Message) 或post(Runnale))并处理接受到消息Looper:负责轮询消息队列(MessageQueue)并取出消息回传给HanlderMessageQueue:负责消息的存储,主要操作有消息的插入(enqueueMessage())与读取next()。 ...原创 2018-03-07 23:04:07 · 374 阅读 · 0 评论 -
Android基础 - Service实例深入理解
上篇学习了Service一些基础知识,知道了在Service做耗时任务(网络请求、IO等等)需开启一个线程,否则会导致ANR,接下来通过实例加深Service的使用理解。Service种类及特点Service几种典型实例下面以模拟下载文件为例子1、不可交互的后台服务不可交互的后台服务即是普通的Service,是通过startService方法启动,其生命周期顺序...原创 2018-07-07 00:39:19 · 749 阅读 · 2 评论 -
源码阅读的经验总结
Android进阶之旅 - 源码阅读的经验总结 在长沙待的那些年,身边所看到的大概可分为两类人,一类是不断反复的做业务逻辑,只求功能能够写出来,每天重复上下班,不想过多的去折腾;还有一类是不断的反思总结和学习,不只停留在做的层次上,是真正的喜欢做这行,且觉得非常有意思。没有...转载 2018-08-02 21:58:05 · 595 阅读 · 1 评论 -
从源码角度解析 - ScrollView嵌套ViewPager不显示的问题
以上布局的方式(ScrollView嵌套ViewPager),在默认情况下是达不到我们想要的效果,整个ViewPager是无法显示的,网上已经有很多解决方案,但很少有文章解释为什么要这样修改,是什么原因造成ViewPager显示不了,现在我们从源码的角度来分析问题的所在。 既然是无法显示,那可能是在ViewPager测量过程中出现了异常,可以先从源码看下ViewPager在onMeasure方法是如何构成的原创 2018-09-04 22:44:46 · 848 阅读 · 0 评论 -
从源码角度解析 - ScrollView嵌套ListView只显示一行的问题
上面的布局在默认情况下,是达不到我们想到的效果,只会显示ListView的一行内容,同样的我们可以通过反推的方式,来查找原因的所在。 为何只会显示一行??我们可以先看看ListView的onMeasure方法原创 2018-09-04 23:23:42 · 237 阅读 · 0 评论 -
Android-PopupMenu弹出式菜单的基本使用
PopupMenu,弹出菜单,一个模态形式展示的弹出风格的菜单,绑在在某个View上,一般出现在被绑定的View的下方(如果下方有空间)。注意:弹出菜单是在API 11和更高版本上才有效的。核心步骤:(1)通过PopupMenu的构造函数实例化一个PopupMenu对象,需要传递一个当前上下文对象以及绑定的View。(2)调用PopupMenu.setOnMenuItemClickList...转载 2018-07-02 17:28:43 · 16291 阅读 · 0 评论 -
BottomSheetDialog的基本使用
最近在开发一个商城的项目,在商品详情内需要弹框选择商品的SKU,如图: 商品图片需要凸出到背景阴影去,于是最新想到使用dialog从底部弹出,选择使用BottomSheetDialog首先在build.gradle下引入: implementation 'com.android.support:design:26.1.0'第二:xml布局文件 dialog_goods_sku_l...原创 2018-05-10 22:56:23 · 20303 阅读 · 1 评论 -
Toolbar基本使用及常见问题
1.导航返回图标不垂直居中问题,如下图: 出现这个问题,只需要设置minHeight属性值与layout_height属性值一样即可,在xml布局中或者代码上设置均可,在代码设置需要注意把dp转成px,否则会达不到效果的//xml布局文件设置中:<android.support.v7.widget.Toolbar android:id="@+id/toolbar...原创 2018-05-10 00:32:24 · 1105 阅读 · 0 评论 -
如何使用keytool查看android应用签名文件的信息
第一步 进入控制台 第二步:定位到.android文件夹下,输入cd .android第三步:输入keytool -list -v -keystore debug.keystore,按回车键;其中debug.keystore为签名文件的所在路径,如:F:\OA_Client_Android\keystore\oa.jks ---> keytool -list -...原创 2017-09-30 00:19:31 · 3770 阅读 · 0 评论 -
Android Studio 将字符串快速生成到string.xml中
1.在java代码或xml布局文件中选择需要操作的字符串,按Alt+Enter组合键,会弹出选择对话框,选择Extract string resource选项,如下图: 选择Extract string resource选项,会弹出如下图: 修改完后,点击“OK”,代码上会自动生成如下图: 此时在string.xml中看到对应的字符串:...原创 2017-09-23 12:08:12 · 8314 阅读 · 3 评论 -
Android基础 - Service生命周期(一)
Service简介四大组件之一,与Activity不同之处,没有UI界面,是在后台运行的组件。适合执行一些长期在后台运行和没有用户交互的任务。默认是在主线程运行,若要执行耗时操作,需放在开启子线程进行。Service工作状态启动状态:主要用于执行后台计算 startService:启动服务stopService:停止服务绑定状态:主要用于其他组件(Activity、Fra...原创 2018-07-03 01:21:30 · 446 阅读 · 0 评论 -
Android基础 - BroadcastReceiver全面解析
简介BroadcastReceiver,同样是Android四大组件之一,有两个重要角色:广播发布者、广播接受者。使用场景及作用作用用于接受或者监听应用发出来的广播,并作出相应的响应。使用场景用于不同组件间的通信,包括应用内和不同应用间的交互通信。监听系统资源的变化,如网络变化、SD卡状态等多进程的通信实现原理是典型观察者模式的应用,基于消息发布...原创 2018-07-08 22:55:37 · 2735 阅读 · 0 评论 -
Android 多线程之AsyncTack的简单使用
一、什么是AsyncTask本质上就是一个封装了线程池和handler的异步框架,主要是用来执行异步任务的,由于内部集成了Handler,可以很灵活在主线程与工作线程(子线程)间切换,将后台任务执行的结果,返回到UI线程处理并更新UI界面。二、AsyncTask的使用方法 /** * * public abstract class AsyncTask<...原创 2018-03-08 23:48:36 · 429 阅读 · 0 评论 -
Android 多线程之HandlerThread
一、什么是HandlerThread及特点HandlerThread本质就是一个Thread,在内部建立了消息队列机制(Looper、MessageQueue),具有消息循环的线程。特点HandlerThread本质上一个线程类,它继承了ThreadHandlerThread与自己的内部Looper对象,可以进行loop循环通过获取looper对象传递给Handler对象,并...原创 2018-03-09 23:15:44 · 345 阅读 · 0 评论 -
Android 多线程之IntentService
什么是IntentService及特点IntentService是一种特殊的Service,是继承于Service并且是一个抽象类。IntentService可用于执行后台耗时任务,当任务执行完后会自动停止销毁由于IntentServce是继承Service的原因,它优先级比普通线程高很多,可以执行一些高优先级的后台任务,并且不会轻易被系统进程杀死IntentService内部是通过...原创 2018-03-10 00:21:54 · 241 阅读 · 0 评论 -
Activity的启动模式及应用场景
启动模式的作用在日常开发中,当默认情况下我们多次启动同一个Activity的时候,系统会创建多个实例并把它们一一放入任务栈,当我们每单击back键,就会栈顶移除一个Activity,直到栈空为止,当栈中没有任何Activity时,系统就会回收这个任务栈。为了优化多次启动同一个Activity而创建多个实例带来的内存消耗问题,Android提供了四种启动模式来修改默认行为。 目前四种启动模式分...原创 2018-03-26 23:50:53 · 280 阅读 · 0 评论 -
Android WebView重定向处理问题
使用WebView加载网页,当加载跳转了很多个页面时,想要回到最前面某一个页面的时,如果使用goBack()方法一步一步的返回,是一件很痛苦的事情。其实WebView提供了历史栈对象(WebBackForwardList)下面是WebBackForwardList常用方法: //获取历史栈实例列表 WebBackForwardList webBackForwardL...原创 2018-06-01 13:30:36 · 1873 阅读 · 0 评论 -
Android基础 - 重温Activity生命周期
《Android开发艺术探索》买了好久了,将近有两年了,一直没有好好系统的看过,在浑浑噩噩的过日子,浪费好多时间;现在从头再来,坚持下去给自己一个希望。典型的生命周期7个生命周期方法onCreate:Activity正在被创建 初始化布局资源和数据onRestart:Activity正在重启启动,从不可见变为可见状态 按Home键返回桌面,再点击桌面图标返回App...原创 2018-06-30 00:50:40 · 585 阅读 · 0 评论 -
Android基础 - 重温Activity的启动模式
我们知道一个应用可能存在多个Activity,在一个Activity除了可以启动本应用的另一个Activity,还可能是其他应用的Activity,比如我们常用的分享朋友圈、拍照等等功能,就是典型的跨应用的交互,那么在Android中是如何管理这些Activity的呢?接下来先了解下Activity的任务栈原创 2018-07-01 14:31:15 · 216 阅读 · 0 评论 -
Android 常用 mimeType 表及用法
常用mimeType表:文件类型mime名称 文件类型mime名称3gpvideo/3gpp pdbchemical/x-pdbaabapplication/x-authoware-bin pdfapp...转载 2018-11-20 11:28:24 · 575 阅读 · 0 评论