- 博客(21)
- 收藏
- 关注
原创 安卓判断Fragment什么时候消失
/ 或者getFragmentManager()取决于您的API Level。//fragment事务。Log.i("Fragment是不可见的", "enterHome: ");如果使用的是事物FragmentTransaction来操作的fragment的话。Log.i("Fragment是可见的", "enterHome: ");就可以使用接下来的方法,来判断当前的fragment是否是显示或者隐藏的。// Fragment是不可见的。// Fragment是可见的。
2024-07-10 16:27:56
394
原创 安卓实现列表左右滑动和点击滑动的效果
/默认滑动到第一页。//默认滑动到第一页。Log.i("onPageChange", "安全环保-maps " + maps.size());//注意,此处有一个技巧,就是当速度为0的时候就滚动会开始的页面,即实现页面复位。//如果滑动的距离超过屏幕的一半表示需要滑动到下一页。
2024-05-27 11:23:24
1922
原创 安卓开发app点击就崩溃排查方法
首先这种点击app就崩溃的情况会有拿不到日志的情况。尽管我在application的oncreate里面放了日志拦截的代码,但是还是拿不到。这种情况有一个解决办法就是:打开手机的设置页面,然后打开开发者选项有一个选择调试的应用。可以选择你自己的app,然后在打开下面的等待调试程序。然后这个时候打开你的app在你觉得可能存在崩溃的地方。可以排查的地方有(启动页,application的oncreate)里面做的初始化sdk的方法,都存在导致app崩溃的情况。
2024-05-24 16:37:47
453
1
原创 安卓实现本地数据库搜索历史记录功能
最近项目上有个新功能需要实现一个本地数据的搜索历史记录,在这记录一下,主要使用到的功能,以及使用的一些技术和代码。例如:项目场景:首先第一次进入搜索页面需要展示(如果有搜索历史展示搜索历史(限制最多三行,超出的自行删除)没有的话展示空页面)。有一个清除的按钮。数据是每次搜索的时候,存在本地即可。需要注意的是,如果这个有多人使用的情况下。需要添加唯一标识来区分每个人的数据。
2024-05-24 15:26:49
836
5
原创 几种常见的设计模式
工厂方法模式(Factory Method):介绍:他是一个用于创建对象的接口,让子类决定实例化那一个类,它使一个类的实例化延迟到其子类。适用于:当一个类不知道他所必须创建的对象的类的时候;当一个类希望由它的子类来指定他说创建的对象的时候;当类将创建对象的职责委托给多个子类中的某一个,并且希望将哪一个子类是代理者这一信息局部化的时候。单例模式(Singleton):保证一个类仅有一个实例,并提倡一个访问它的全局访问点。适用于:当类只能有一个实例切客户亏从一个众所周知的访
2021-08-03 11:32:54
103
原创 Android的事件分发
事件分发Android事件分发机制:Android的view是树形结构的,view可能会重叠到一起,点击重叠位置的时候,会有多个view响应这个点击事件,那这个事件到底该由谁来处理,就出现Android的事件分发。事件分发涉及到三个类,activity、viewgroup、view。activity包含一个window对象,这个对象由phonewindow来实现的,phonewindow将decrview作为窗口的根view,他的内部划分为两个区域,titleview和conntentview,
2021-06-15 20:14:45
277
4
原创 Java中的锁
Synchronized同步锁synchronized它可以把任意一个非NULL的对象当做锁。它属于独占式悲观锁,同时属于可重入锁。Synchronized作用范围作用于方法时,锁住是对象的实例(this); 当作用于静态方法时,锁住的是Class实例,又因为Class的相关数据存储在永久带PerGen(jdk1.8则是metaspace),永久带是全局共享的,因此静态方法锁相当于类的一个全局锁,会锁所有该调用改方法的线程。 synchronized作用于一个对象实例时,锁住的是所有以该对象
2021-06-10 19:30:08
129
原创 Java基础之数据结构
栈栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶。它是后进先出的。对栈的基本操作只有push(进栈)和pop(出栈)两种,前者相当于插入,后者相当于删除最后的元素。队列队列是一种特殊的,特殊之处在于他只容许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端叫做对头。链表链表是一种数据结构,和数组同级。比如,Java中我们使用的ArrayList,其实现原理是数组。而 L.
2021-06-08 21:39:55
130
原创 Java基础之GC回收
什么是GC垃圾回收gc( garbage collection) : 即垃圾收集, 是指 JVM 用于释放那些不再使用的对象所占用的内存。什么时候出发GC手动出发:当前程序去调用System.gc()的时候触发。注意:GC回收的时候程序会停止运行,同时回收的过程中,会消耗大量的系统性能,所以一般情况下我们不会主动去调用gc回收方法。手动触发:根据Eden区和From和Space区的内存大小来决定的。当内存大小不足是,则会启动GC线程并停止应用线程。程序再次申请内存的时候,系统(jvm)发
2021-06-07 21:07:04
261
原创 Java的集合
Arraylist数组Arraylist是最常用的list实现类,内部是通过数组实现的,他容许对元素快速随机访问。数组的缺点每一个元素之间不能有间隔,当数组大小不能满足时需要增加存储能力,就要将已经有数据的数组复制到新的存储空间中。当Arraylist的中间位置插入或者删除元素的时候,需要对数据进行复制、移动,代价比较高。因此,它适合随机查询和遍历,不适合插入和删除。LinkList链表LinkList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。另外,他还.
2021-06-03 19:46:51
70
1
原创 Java多线程实现的三种方式
多线程三种方式JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。s.
2021-06-02 19:35:21
74
原创 Java基础之八大数据类型
</font>@[TOC](文章目录)<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1"># 前言<font color=#999AAA >学习java这门技术也越来越重要,很多人都开启了学习java学习,本文就介绍了java学习的基础内容。</font><hr style=" border:solid; width:100px;...
2021-06-01 20:23:46
85
原创 Java基础之线程池
线程池的原理:线程池是管理一组同构工作线程的资源池。合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。线程池的使用场景:Java中经常需要用到多线程来处理一些业务,我们非常不建
2021-05-31 20:32:48
75
原创 Java基础之枚举
基本概念:枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。枚举类是一个特殊类,他和普通类一样可以使用构造器、定义陈原变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类。枚举的优缺点:优点:类型检查,有效的检查 枚举作为一个类,可以有自己的属性以及自己的方法。 和常量相比,无序查看文档和源代码就能直接知道所有可能的返回值,方便编码。缺点:由于Java中支持继承,因此枚举举例不能在继承其他类。 使用枚举作为返回值可能造成问题其实大家都知道就是客户端和服务端版
2021-05-30 19:06:46
125
原创 Java基础之泛型
一 、介绍Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。二、定义泛型就是指明集合中存储数据的类型。如果没有指明数据类型,那集合可以存储任意类型,就会存在上述提到的类型转换异常的安全隐患。三、提出背景Java集合(Collection)中元素的类型是多种多样的。例如,有些集合中的元素是Byte类型的,而有..
2021-05-28 19:57:14
94
原创 Java基础之常量
定义常量的定义:**在程序执行的过程中,其值不可以发生改变的两就是常量。常量不同于其他常量值,他可以在程序中用符号来代替常量值使用,因此在使用前必须先定义才可以使用*。常量值的定义:常量和常量值是不同的概念,常量值又称为字面常量,他是通过数据直接表示的。关系:常量值四常量的具体和直观的表现形式,常量是形式上的表现。通常在程序中既可以直接使用常量,也可以直接使用常量值。**分类- 整数常量 : 所有整数- 小数常量 : 所有小数- 布尔常量 : 只有true和false.
2021-05-27 10:42:25
519
原创 Java基础之面向对象
目录什么是面向对象面向过程和面向对象的区别面向对象的三大特征面向对象五大基本原则单一职责原则开放封闭原则里氏替换原则依赖倒置原则ISP接口隔离原则总结什么是面向对象面向对象是一种思想,是基于面向过程而言,就是说面向对象是将功能等通过对象来实现的,将功能封装进对象中,让对象去实现具体的细节;这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是一种对数据的优化,操作起来方便,简化过程。面向过程和面向对象的区别面向过程优点 : 性能比面向对象号,因
2021-05-27 09:40:54
69
原创 kotlin
kotlin的基本语法首先它的包和java没有太大的区别,包需要申明在源文件的顶部:在写kotlin的时候它的程序入口是main函数当他的参数是Int类型时、返回的就是Int类型的函数fun sum(a: Int, b: Int): Int { return a + b}...
2021-05-26 21:01:36
81
原创 Bean 类解析异常
Bean 类解析异常 有的人写代码会把bean类写的和乱码一样,让人解析起来非常费劲在解析这种情况中就会出现这种两种错误 bean类集合字段错误 和内部类是汉字的形式有效的解决方法 就是自己手写一个实体类 把所需的字段 写成实体类 这样比较高效先把解析的数据放到一个string的字符串里面然后通过JSONObject jsonArray进行json串解析处理以后如果遇到任何接口内部字段问题,都可以使用这种方法进行解决,这个方法需要注意的就是在得到字段内的数据之后添加进实体类,...
2021-05-25 21:46:21
1259
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人