【Android开发坑系列】之Fragment】的更多相关文章

总结一下: 事件序列的定义:从手触摸屏幕(含)到离开屏幕(含)期间所发生的一系列交互事件.主要由ACTION_DOWN.ACTION_MOVE.ACTOIN_UP.ACTION_CANCEL等组成,其中一次事件序列中,DOWN和UP都只有最多一个,MOVE有若干个,可以为0个.定律:某个View只有将ACTION_DOWN处理(消费)掉,才会有机会处理后面的ACTION_MOVE和ACTION_UP. 定律:正常情况下,一个事件序列只能被一个View 拦截且消耗. 因为一旦一个元素拦截了某事件,…
这个东西有顾名思义是碎片,和之前的Activity对应. 坑1:一般情况都会想当然的以为进程被杀掉之后,Fragment也会被回收 其实,Fragment有自己的生命周期,有自己的管理器(FragmentManager),也即:包含Fragment的进程被干掉,Fragment不一定会被回收,而是由FragmentManager来决定生死. Q:如何验证上面的说法?A:如果是一般正常的流程“打开-关闭”软件,Fragment的确被回收了.但是如果使用“腾讯手机管家”之类的内存清理工具,清理内存(…
流行的思路如下[2015-11-20更新]: 1.让Service杀不死.Service的onStartCommand返回START_STICKY,同时onDestroy里面调用startService启动自身. 2.让Service从后台变成前置.在Android 2.0以前有效,借助setForeground(true). 3.让某个进程不被系统的low memory killer杀死(如数据缓存进程,或状态监控进程,或远程服务进程).add android:persistent="true…
PopupWindow在4.0之前的版本有个系统级别的BUG,必须借助一段自定义的fix代码来修复.其中mPopPm就是PopupWindow实例.java.lang.NullPointerExceptionat android.widget.PopupWindow$1.onScrollChanged if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { try { final Field fAnchor =…
总结一下: 1.Touch事件分发中只有两个主角:ViewGroup和View.ViewGroup包含onInterceptTouchEvent.dispatchTouchEvent.onTouchEvent三个相关事件.View包含dispatchTouchEvent.onTouchEvent两个相关事件.其中ViewGroup又继承于View. 2.触摸事件由Action_Down.Action_Move.Aciton_UP组成,其中一次完整的触摸事件中,Down和Up都只有最多一个,Mov…
我们平时设置图片的时候,几乎都忘记回收老的(背景)图片,比如: TextView.setBackgroundDrawable() TextView.setBackgroundResource() ImageView.setImageDrawable() ImageView.setImageResource() ImageView.setImageBitmap() 这样造成内存浪费,积少成多,整个软件可能浪费不少内存. 如果记得优化,整个软件的内存占用会有10%~20%的下降. // 获得Imag…
try { mViewPager.postDelayed(new Runnable() { @Override public void run() { getCurrentPage().render(false); } }, 500); } catch (Exception e) { // 可忽略的异常 LogUtil.i(TAG, "====="); } 上面的写法实际上catch不到getCurrentPage().render(false)的异常,postDelayed会造成ge…
关键知识要点如下(持续更新): WindowManagerService只负责管理Window,不负责图像的绘制: SurfaceFlinger负责图像的合成:…
前言 此篇博客只讲解okhttp的拦截器功能的详细使用,如果你还不太了解okhttp可以参考我另外一篇博客 Android 开发 框架系列 OkHttp使用详解 添加Interceptor的简单例子 在 Android 开发 框架系列 OkHttp使用详解 可以了解到okhttp的基本使用,初始化OkHttpClient的时候我们可以添加拦截器,如下: // 配置一些信息进入OkHttpClient mOkHttpClient = new OkHttpClient().newBuilder()…
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解Android 卷Ⅰ,Ⅱ,Ⅲ>中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!! 前言 上一篇文章中我们使用底部导航+Fragment的方式实现了Android主流App中大都存在的设计.并命名其为"Fragment最佳实践",作为想到单独使用Fragment的用…
官网地址:http://hencoder.com/ 我来做一次辛勤的搬运工 HenCoder:给高级 Android 工程师的进阶手册 HenCoder Android 开发进阶: 自定义 View 1-1 绘制基础 HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解 HenCoder Android 开发进阶:自定义 View 1-3 文字的绘制 HenCoder Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助 HenCod…
背景: 近期因实际项目需要,在特定操作下触发定位请求,取到用户位置及附近位置. 问题: 经初步选型,最终决定接入百度定位,按照百度定位SDK Android文档,接入过程相对顺利.但随后发现,在小米系列等部分机型上,进入app后会出现"正在尝试 通过网络或者卫星对您的手机进行定位".很影响用户体验. 解决过程: 1.Flurry的小坑 项目中引入了数个第三方SDK,主要包括Flurry,友盟,个推,百度定位SDK等.在App启动初始化及进入到首页的执行流中,主要涉及到Flurry,友盟…
介绍 GitHub:https://github.com/greenrobot/EventBus 先聊聊EventBus 线程总线是干什么的,使用环境,优点.缺点. 干什么的? 一句话,简单统一数据传递 和 提供主次多个线程 数据传递:Android系统有很多类别的数据传递方式,例如Intent 活动之间传递数据.Message与Handler 主次线程之间传递数据.广播的方式.使用基类危险的去传递数据.传递数据的方式太多,且都需要各自的注册方式,使用使用起来比较繁琐.所以EventBus第一个…
在与服务端通过JSON格式进行交互过程中,不同版本的JSON库在对于key-value为null情况上的处理不同. Android自带的org.json对key-value都要求不能为null,对于必传的字段需要留意一下,尤其是留意value是否可能出现null的情形.否则导致服务端解析出现问题. 此坑已被踩中,留下小记.下面直接看一下相应位置源码: public class JSONObject { ...... /** * Maps {@code name} to {@code value}…
官方文档:http://ai.baidu.com/docs#/TTS-Android-SDK/6d5d6899 官方百度语音合成控制台:https://cloud.baidu.com/product/speech/tts 步骤一  申请授权 在百度语音控制台中申请使用语音合成的授权,填入相关数据后(注意:一定要选择Android填入正确的包名,不然可能会影响使用离线语音合成).得到相应的APP_ID,APP_KEY,SECRET_KEY:然后在下载语音包SDK. 步骤二  导入依赖 这里有三组文…
目录 简介 导入工程 使用流程概况 一个简单的小Demo 深入学习 @Entity使用 自定义表名 tableName  自定义字段名@ColumnInfo 主键 @PrimaryKey 索引 @Index 外键 @ForeignKey 嵌入对象 @Embedded ​ 深入学习@Dao 创建Dao Class 插入 @Insert 简介  Android 2017 IO大会推出了官方数据库框架:Room.Room其实就只是对原生的SQLite API进行了一层封装.不得不说google其实早应…
简介 okhttp是一个第三方类库,用于android中请求网络.这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary) .用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient). 官网网址:OKHttp官网 OkHttp github地址:https://github.com/square/okhttp OkHttp jar包下载: h…
首先介绍一下FileDownloader GH :https://github.com/lingochamp/FileDownloader/blob/master/README-zh.md FileDownloader2 现在, FileDownloader2-OkDownload 已经正式发布, okdownload继承了所有FileDownloader的优点,甚至做了更多的优化以及更多的特性. 特点 简单易用 单任务多线程/多连接/分块下载(并支持通过ConnectionCountAdapt…
前言 此篇博客只是上传功能的记录demo,如果你还不太了解okhttp可以参考我的另一篇博客https://www.cnblogs.com/guanxinjing/p/9708575.html 代码部分 package okhttpdemo.com.libs.net.httpBase; import android.util.Log; import org.json.JSONObject; import java.io.File; import java.io.FileInputStream;…
前言 此篇博客只是下载功能的记录demo,如果你还不太了解okhttp可以参考我的另一篇博客https://www.cnblogs.com/guanxinjing/p/9708575.html 代码部分 package okhttpdemo.com.libs.net.httpBase; import android.util.Log; import org.json.JSONObject; import java.io.File; import java.io.FileOutputStream;…
解决方案为以下两种: 方法1:在fragmentActivity里oncreate方法判断savedInstanceState==null才生成新Fragment,否则不做处理. 方法2:在fragmentActivity里重写onSaveInstanceState方法,但不做实现,也就是将super.onSaveInstanceState(outState)注释掉.…
这种情况下大多数是因为存在kadb.exe在执行,或者adb.exe端口被占用. 1,检查是否存在kadb.exe程序正在执行 打开任务管理器,打开详细信息,按照字母顺序找到kadb.exe,结束进程,重新启动adb.exe即可以看到adb.exe出现在任务管理器中. 补充一下,本人电脑上面的kadb.exe是酷狗音乐里面的一个执行程序,貌似每次打开酷狗音乐这个程序就会启动,导致无法启动adb.exe. 2,若是上述方法无效,可能是adb.exe端口被占用,可以关闭占用端口进程,或者更改adb.…
首先简单的介绍一下Gilde作用范围.Gilde功能十分强大,它可以实现图片处理.图片本地加载.图片网络加载.位图加载.图片内存缓存.图片磁盘缓存.Gif图片加载.使用简单轻松,轻松的后是它强大的心,它帮你解决了http.输入输出流.图片缓存管理.批量加载线程管理.图片处理. 另外,因为Gilde更新了很多年了,所以部分之前的使用方式已经被作者修改,所以本人重新整理了一些基本使用: github :https://github.com/wasabeef/glide-transformations…
Android-Universal-Image-Loader github地址:https://github.com/nostra13/Android-Universal-Image-Loader 加载缓存网络图片的工具,此工具的最大优点是提供了下载缓存进度接口,缺点需要自己处理加载后的图片 使用效果: import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universali…
在Android开发中,少不了Fragment的运用. 目前在实际运用中,有v-4包下支持的Fragment以及app包下的Fragment,这两个包下的FragmentManager获取方式有点区别,所以大家在运用的过程中,一定要注意自己的导的包. app包下FragmentManager用 Fragmentmanager  fragmentManager=getFragmentManager(); v-4包的FragmentManager用 FragmentManager   fragmen…
前言 retrofit基于okhttp封装的网络请求框架,网络请求的工作本质上是 OkHttp 完成,而 retrofit 仅负责网络请求接口的封装.如果你不了解OKhttp建议你还是先了解它在来学习使用retrofit,传送门:Android 开发 框架系列 OkHttp使用详解 Retrofit优势,就是简洁易用,解耦,扩展性强,可搭配多种Json解析框架(例如Gson),另外还支持RxJava.但是,这篇博客不讲解RxJava配合使用的部分,与RxJava的配合使用将在另外一篇博客中讲解.…
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android Studio 作为开发 IDE 的同学开路. PS:其实我就是现学现卖,希望我能坚持刷完. 在前面刚学习了Fragment,这次来了解一下她的生命周期. 系列目录在此: Android Studio 单刷<第一行代码>系列目录 Fragment 的生命周期 先来看一下 Fragment 的…
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android Studio 作为开发 IDE 的同学开路. PS:其实我就是现学现卖,希望我能坚持刷完. 在前面已经学习了 Android 四大组件中的 Activity,这次来学习一下Activity 中的 Fragment. 系列目录在此: Android Studio 单刷<第一行代码>系列目录…
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解Android 卷Ⅰ,Ⅱ,Ⅲ>中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!! 前言 上一篇博客我们主要总结了之前博客的知识,那么本篇我们来分析一下Fragment.Fragment又被称为"碎片",可把它看做是一个轻量的Activity,它可以像Activit…
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解Android 卷Ⅰ,Ⅱ,Ⅲ>中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!! 前言 上一篇文章中详细分析了Fragment相关知识,那么作为"小Activity",Fragment能做什么呢,如何使用Fragment得到最佳实践呢.Fragment的设计最初也…