掘友等级
获得徽章 0
运行Android项目报错:Cannot obtain size for recycled Bitmap
报错原因:使用 Glide 加载图片,不要手动回收 bitmap,Glide 会替你完成
解决办法:去掉手动回收 bitmap 的代码 Bitmap.recycle() 就不报错了
Android中不同Activity之间的切换是不可避免的事情,Android中提供了一个方法来解决这个问题,即overridePendingTransition(A,B)函数。此方法在startActivity()或者是finish()后调用,例如
startActivity(new Intent(MainActivity.this,SecondActivity.class));
overridePendingTransition(enterAnim, exitAnim);
overridePendingTransition有两个参数,第一个参数(enterAnim)是作用于SecondActivity 的进入屏幕可见区域效果,第二个参数(exitAnim)是作用于当前 Activity 离开屏幕可见区域效果
Android lint是在ADT16提供的新工具,它是一个代码扫描工具,能够帮助我们识别资源、代码结构存在的问题。
例如我们可以方便的去掉无用引用,点击Android studio的Analyze > Run Inspection By Name,弹出对话框中输入unused import,选中一条或多条,点击右侧 Delete unnecessary import即可轻松删除。
@奔跑呢鸡翅、@4951Ming、@用户9156965617696
国内应用市场对 64 位架构的升级支持具体的时间表:
2021年12月底,现有和新发布的应用、游戏,需要上传包含 64 位包体的 APK 包。也就是说所有上传的应用都应该包含 64 位代码的版本,不再接受仅有 32 位版本的应用上传。
2022年8月底,对于支持 64 位的硬件系统,将只接收 64 位版本的 APK 包。也就是如果到时用户手中的硬件设备支持 64 位系统的话,那么将只运行 64 位版本的应用。
2023年底,硬件将仅支持 64 位APK,32 位应用无法在终端上运行。
@奔跑呢鸡翅、@4951Ming、@用户9156965617696
明白浅拷贝和深拷贝的概念很重要。
在 Java 中,除了基本数据类型(元类型)之外,还存在 类的实例对象 这个引用数据类型。而一般使用 = 号做赋值操作的时候。对于基本数据类型,实际上是拷贝的它的值,但是对于对象而言,其实赋值的只是这个对象的引用,将原对象的引用传递过去,他们实际上还是指向的同一个对象。
而浅拷贝和深拷贝就是在这个基础之上做的区分,所谓的浅拷贝和深拷贝,只是在拷贝对象的时候,对 类的实例对象 这种引用数据类型的不同操作而已。
@奔跑呢鸡翅、@4951Ming、@用户9156965617696
Android中的setTag()用处多多:
1、使用的最多的场景基本就是 ListView,GridView,RecycleView等类似用于展示大量重复的 View 的控件上,我们反复的声明变量是没有意义的,增加了一个 ViewHolder 来存储这些信息,把它通过setTag()存到 itemView 中,再第二次使用的时候就可以通过getTag()把 holder 取出来直接使用。
2、用来区分 view,例如可以给多个 Button 添加一个监听器,每个 Button 都设置不同的setTag。这个监听器就通过getTag来分辨是哪个 Button 被按下。
3、还可以存储不同的信息,这就用到了 setTag(key,object),不过这个 key 需要写成资源类型
@奔跑呢鸡翅、@4951Ming、@用户9156965617696
前台服务能让 Android 系统确保资源优先用于完成用户发起的耗时任务,但它经常被滥用。我们发现几乎一半的前台服务是从后台启动的,这导致了许多问题,包括电量会被迅速耗尽,以及用户会被意外的前台服务通知困扰等。因此从 Android 12 开始,将禁止从后台启动前台服务,并对启动前台服务作了限制。
@奔跑呢鸡翅、@4951Ming、@用户9156965617696