android移动开发
文章平均质量分 67
PK0071
这个作者很懒,什么都没留下…
展开
-
那你讲一下IntentService
之前面BAT时被问过两三次的问题,为什么喜欢问这个?因为这里能延伸出去很多问题,想答好并不简单。首先会问IntentService跟Service有什么区别?Service运行在主线程中,直接使用做耗时任务会卡主线程,从而导致ANR。Service ANR的时间为前台Service20秒,后台Service200秒。而IntentService会开启子线程,重写onHandleIntent方法中处理逻辑即可,不会引发ANR。如果高级岗位只回答到这里,那么结果大概率是接着应该要回答原创 2021-06-04 00:13:32 · 340 阅读 · 0 评论 -
那你讲一下Looper执行message的分发流程
这个问题被大厂不止问了一遍了,其实就是考察有没有真正看过这里面的源码。直接上源码Looper.java里面的loop()里面有这么一句代码,就是用来分发message的,target就是发送该message的handler跟进去就是分发的方法,如箭头所示有三种分发路径1.先说最后一个handleMessage大家最熟悉的了,就是走到我们定义handler时重写的handleMessage,这个比较常规。2.第一个箭头的callback其实就是handler.post(ru原创 2021-05-29 13:02:05 · 268 阅读 · 3 评论 -
先搞一波kotlin,看它怎么说
kotlin被谷歌正名都快两个月了,作为Android developer是时候学习一波了,kotlin优点有很多比如完全兼容java,空值处理,语法简洁,支持新特性等等。。。 废话不多说,直接开始配置环境搞起来,我用的AS是2.2.3版本,需要装插件,到时候AS3.0会内置kotlin。一.kotlin环境配置1.下载插件等半个小时。。2原创 2017-06-30 16:09:40 · 1540 阅读 · 0 评论 -
Android中序列化的Parcelable与Serializable区别及其AS插件
在我们网络传输或者本地持久化的时候,和intent传递对象时,都是需要将对象序列化的。Serializable是java的序列化接口Parcelable是android提供的序列化接口不用想都知道它们肯定有区别,不然谁没事给你弄两个一样的东西。因为写的android就用intent传值来做栗子一.Serializable一般实现public clas原创 2016-07-29 15:30:28 · 895 阅读 · 0 评论 -
自定义View:通用的下拉刷新
我们知道ListView是可以addHeadView和addFooterView的,其他的RecyclerView 和scrollView等是不能添加的,如果为每个都单独写又太麻烦了,所以一般自定义ViewGroup来做一个通用刷新的控件。网上有BAGRefresh这类通用的刷新,看了写的东西比较多,所以我按照自己想法写了一个简单的demo说明一下原理。老规矩先来张图,背景图是受到一个国外ap原创 2016-08-06 16:33:49 · 660 阅读 · 0 评论 -
Android中开发IM即时通讯功能的方案
最近准备做IM功能,在技术预研当中,其实可行方案还是比较多的,就看怎么选了1.第三方平台比如环信,融云,leancloud,容联云等等。直接使用sdk就可以实现了,最简单最直接,而且稳定性已经不错了,连UI界面都带有了,可以自行修改,缺点是要收费,比如环信日活跃30万以上开始收费,融云VIP级别的功能要收费。如果让我选应该会在环信和融云之间选,环信的话一个是市场占有率比较大,二个是技术客服原创 2016-08-03 17:37:34 · 10519 阅读 · 0 评论 -
AsynTask版本兼容问题
AsynTask本质其实是对线程池+Handler的封装,知道本质你就知道为什么能执行任务,为什么能更新UI了。线程池这块使用了ThreadPoolExecutor由于AsynTask在以往版本中被频繁的修改过,所以导致了不同版本使用的时候会出现崩溃,或者执行延迟很严重等等问题.好那么带上疑问走进源码这是API23源码略过一百多行注释。。。上面标了两个线程池原创 2016-06-17 14:03:10 · 502 阅读 · 0 评论 -
Volley的ImageLoader加载图片错位处理方式
在ListView中使用Volley的ImageLoader加载图片会出现图片错位的问题错位问题我们都知道是复用convertView并且异步加载图片导致的。方法一:可以换成使用NetworkImageView去避免方法二:直接去重写getImageListener方法,使用url加个Tag就可以了下面直接看重写怎么做,直接去到Volley源码找一下哪里获取bitmap的原创 2016-06-30 21:24:04 · 2284 阅读 · 4 评论 -
自定义ViewPagerIndicator:100行代码实现两种可滑动指示器
按照惯例先上图,一种是三角形,一种是最常用的下划线实现思路,主要是在onPageScroll里面进行指示器滑动距离和父容器滑动距离的计算,然后进行滑动,滑动解决了其他就比较简单了。顶部就是自定义的ViewPagerIndicator,下面就是Fragment+FragmentPagerAdagter主MainActivity代码,就是常规的ViewPag原创 2016-06-12 18:49:38 · 992 阅读 · 0 评论 -
android:layout_weight新认识
android:layout_weight本来是一个按比例显示的属性,很好理解,不过当同时配置了android:layout_width="match_parent"时就出现了反常的情况。这里对这个属性做些总结。随便记录一下android:layout_weight属性几种情况一.当android:layout_width="0dip"时,按android:layout_weight分原创 2016-03-20 11:05:55 · 455 阅读 · 0 评论 -
ListView显示不同布局时注意事项
ListView显示两种以上的布局的时候我们的adapter需要重写两个函数一个是getViewTypeCount() 返回不同type的总数量,比如3种不同布局,可以返回3或者3以上都ok一个是getItemViewType() 返回当前的type注意事项一:两个函数一起重写不然报错注意事项二:getItemViewType() 返回必须是从0开始的连续的原创 2016-03-20 23:46:58 · 470 阅读 · 0 评论 -
android应用启动页面显示
腾讯QQ,微博,大部分的应用启动的一个页面都是显示自己logo,不但可以打下广告还可以掩饰后台加载的行为,今天想在自己的应用加上,去网上搜索了一下,找到了一个比较实用的案例,使用handle和thread来计时显示,修改了一下就用上了。Splash.javapackage com.vae;import android.app.Activity;import android.conte原创 2013-12-23 18:52:55 · 1405 阅读 · 0 评论 -
加载性能优化ViewHolder
在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新使用view来减少对象的创建。ListView加载数据都是在public View getView(int position, View c转载 2013-12-31 13:09:04 · 755 阅读 · 0 评论