Java
文章平均质量分 88
Hello,Fenger
fenger是个渣渣程序员
展开
-
BadTokenException 相关
错误分析:AS中全局搜索BadTokenException,会在ViewRootImpl的setView方法中看到好几个抛出这个异常的代码: int res = mWindowSession.addToDisplay(); switch (res) { case WindowManagerGlobal.ADD_BAD_APP_TOKEN: case WindowManagerGlobal.ADD_BAD_SUBW...原创 2021-03-15 16:17:55 · 353 阅读 · 0 评论 -
Android常考问题(10)- Android启动模式
启动模式四种:标准的standard,栈顶复用singleTop,栈内复用singleTask,单例模式singleInstance。这次刚好项目中用到了,先说一下具体情况。我这边需要做个页面跳转,很简单的intent,但是从Activity A到Activity B之后,按下返回键,会回到A,这是正常的standard模式的启动,,但是如果我按下了一个自定义按钮,然后用intent跳回A,这...原创 2019-11-13 15:44:31 · 184 阅读 · 0 评论 -
Android常考问题(8)-设计模式:Builder模式(顺带学习了一下String的比较和final)
今天的主要目的是学习设计模式中的Builder模式。由于java基础不牢固,在学习过程中要回过头去学习java内容,因此凑成了这样一篇驳杂的文章。Builder模式首先是Builder设计模式的作用:将复杂对象的构建和表示分离,使得不同构建过程创建不同的表示对象。(概念啥的我就看看)实现过程比较简单,只要把对象类,builder抽象接口,ConcreteBuilder(接口的实现),和...原创 2019-09-18 19:11:32 · 254 阅读 · 0 评论 -
Android常考问题(7)-动画详细介绍
这次学习的是动画,但是不得不说,看完这篇文章我没有重新写的打算。不是因为太长,而是因为太详细。感觉自己无话可说了。因此这篇文章作为转载,很感谢作者。动画种类Android 动画可以归纳为以下几种:(点击链接跳转到github查看源码)视图动画(View 动画) 帧动画(Frame 动画、Drawable 动画) 属性动画 触摸反馈动画(Ripple Effect) 揭...转载 2019-09-03 15:21:27 · 236 阅读 · 0 评论 -
RecyclerView及其复用-问题解决
现在开始解决问题。首先按照之前解释的逻辑,能够分辨出使用RecyclerView的时候出现显示错乱是因为复用问题。这里刚好对于问题进行解决。(这是在电视端开发,会有焦点的获取问题)首先描述下问题。问题其实很简单,就是一个View的List里面每个item都有一个按钮控件,这个按钮可以显示开启或者关闭,这里首先产品的需求不明确,只给了几个设计图。按钮大概长这样,就是遥控按一个按键删除按钮...原创 2019-09-02 14:24:48 · 3071 阅读 · 0 评论 -
Android常考问题(6)-RecyclerView及其复用-源码分析
前一篇的ListView只是之前的学习的回顾和复习,RecyclerView才是目前学习的主要内容。这部分内容也比较多,因此详细分两部分来总结一下。而且对比之前的ListView,应该能更好理解RecyclerView的内容。首先认识一下RecyclerView。这个东西有点杂乱。我们知道ListView可以用来显示很多的重复数据,按照item排列就行了。而RecyclerView综合了Lis...原创 2019-08-31 16:01:10 · 534 阅读 · 0 评论 -
Android常考问题(5)-ListView及其复用
ListView虽然已经几乎被RecycleView取代,但是其复用的核心思想还是很棒的,而且也经常在入门级面试中被提问。在看RecycleView的时候云里雾里的,就先理清ListView。这次的起因是因为RecycleView复用出现的严重bug。其实很久之前就捣鼓过一次ListView的复用问题,现在回过头看看真的是不可思议,我当时是怎么捣鼓出的多层嵌套的ListView的同时还解决了复用引...原创 2019-08-28 19:33:24 · 341 阅读 · 0 评论 -
Android常考问题(4)-序列化和反序列化
网络上大部分对于序列化的解释都是大同小异的官方解释。我的理解是:比如数据传输的时候,传输过程都是字节流数据,在你的代码的里是对象格式,而在传输的时候要变成字节流数据。因此发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。序列化存储也是类似的,硬盘等上面保存的也是字节流,也需要序列化之后存入硬盘。 序列化主要有两种方法:S...原创 2019-08-26 17:49:19 · 196 阅读 · 0 评论 -
Android常考问题(1) - 触摸事件
Android的触摸事件分成了三个步骤:从按下去(ACTION_DOWN)到移动(ACTION_MOVE)最后离开屏幕(ACTION_UP),这三个就是三种触摸事件,属于一个名叫MotionEvent的类。Android的触摸机制也有三个阶段,我们用一整个触摸事件的发生过程来说明一下。发生触摸事件后,一般由Activity发起dispatchTouchEvent这个方法,这个方法过程叫分发...原创 2019-08-16 18:04:44 · 257 阅读 · 0 评论 -
Android常考问题(2)-SharedPreferences
首先说一下,Android五种存储文件方式:1.文件存储。用保存到文件中的方式进行存储,openFileInput()和openFileOutput()方法来读取设备上的文件。2.SQLite存储。通过数据库存储数据,常用的工具GreenDao,这个以后再看吧。3.ContentProvider存储数据,这一块主要用于数据共享。4.网络存储。5.SharedPreferences存...原创 2019-08-21 16:15:09 · 680 阅读 · 0 评论 -
Android常考问题(3)-view的绘制
Android中常会自定义一个控件,这里详细说一下view的绘制流程。(主要是敲一遍源码加强记忆)首先view主要有两种:view和viewGroup(详细介绍不再赘述),从新建一个activity开始,我们会用setContentView展开一个内容视图,这就是一个viewGroup,也是用户所看到的界面。首先每个activity都会创建出一个PhoneWindow窗口,这是内容的最基本窗口...原创 2019-08-23 19:28:14 · 140 阅读 · 0 评论 -
深入浅出Java GC自动回收机制--转载
GC :Garbage Collections 字面意思是垃圾回收器,释放垃圾占用的空间。让创建的对象不需要像c、c++那样delete、free掉 。对于c、c++的开发人员来说内存是开发人员分配的,也就是说还要对内存进行维护和释放。对于Java程序员来说,一个对象的内存分配是在虚拟机的自动内存分配机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现内存泄...转载 2019-07-24 17:02:15 · 171 阅读 · 0 评论