Android
文章平均质量分 60
Landon_Xu
这个作者很懒,什么都没留下…
展开
-
Intent-filter多data匹配的一个坑
一、问题复现Intent隐式启动Activity,我们在manifest文件中定义了如下intent-filter:// 出现问题的写法<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme原创 2021-01-09 21:03:06 · 4519 阅读 · 0 评论 -
RecyclerView onBindViewHolder的position不准问题
RecyclerView onBindViewHolder的position不准问题一、onBindViewHolder的触发时机二、position和holder.getAdapterPosition三、holder.getLayoutPosition和holder.getAdapterPosition四、引用参考一、onBindViewHolder的触发时机当adapter中添加一个数据的时候,notifyItemInserted(index)会触发一次onBindViewHolder,此时posi原创 2021-01-03 21:06:38 · 4491 阅读 · 2 评论 -
Android那些坑
fragment中startActivityForResult的接收问题:fragment中startActivityForResult如果想要在fragment中的onActivityResult接收,需要在activity中的onActivityResult调用super.onActivityResult,并且此时activity的onActivityResult接收fragment的req...原创 2017-12-15 11:08:36 · 308 阅读 · 0 评论 -
LayoutInflater的inflater引发的问题
LayoutInflater的inflater引发的问题平常在用LayoutInflater的inflater方法时,一般都是这样写:inflate(R.layout.a,null),第二个参数为啥用null都不明白,直到遇到用fragment中的布局replace一个linearlayout的时候,才真正去了解其中的含义。场景还原一、场景还原在Activity中用LinearLayout作为Fra原创 2017-10-14 14:09:17 · 594 阅读 · 0 评论 -
Handler、Looper、Message
Handler、Looper、Message三者的关系并不复杂:Handler内部有一个Looper,Looper是存放在ThreadLocal里的,而ThreadLocal是线程里的数据,故Looper是线程相关的。Looper内部有MessageQueue,MessageQueue负责管理Message。loop()方法就是一直在遍历MessageQueue,然后将消息分发处理。Hande原创 2016-08-11 10:29:21 · 379 阅读 · 0 评论 -
Anroid连接BLE的两个坑
android,ble,蓝牙原创 2016-11-07 11:11:59 · 7369 阅读 · 1 评论 -
IntentService无法用bindService
在做adb工厂测试的一个apk的时候,要求用socket连接返回测试结果。那么apk中需要建立一个ServerSocket等待adb命令行的命令,当处理完后,需要通过socket返回给adb。这时,apk端可以看做一个server端,adb命令端可以看做client。如果要在apk端开启一个ServerSocket,那么需要开一个线程,在线程里进行等待客户端的接入。IntentService是比较好原创 2016-08-10 14:10:54 · 3157 阅读 · 2 评论 -
android sdcard各种存储路径解惑
在开发app的过程中,需要保存一些数据,这时就会遇到各种存储路径,sdcard/、storage/sdcard0、mnt/sdcard等等,会让人很难以理解。这其中的很多路径都是指向同一个路径,有点指针的味道。其中的sdcard/、mnt/sdcard、storage/sdcard0、storage/emulated/0、storage/emulated/legacy都是同一个路径的不原创 2016-02-18 15:00:19 · 4742 阅读 · 0 评论 -
AlertDialog源码分析
AlertDialog用的是builder模式构建,平常的用法大都是这样: AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setIcon(R.drawable.icon); builder.setTitle("Title"); builder.原创 2015-12-14 19:35:48 · 410 阅读 · 0 评论 -
Android之fragment的两种创建方式
Android中fragment因为轻量级,所以用到的非常多。而之前不是很熟悉,所以整理一下fragment的创建方式。原创 2016-01-14 10:54:23 · 649 阅读 · 0 评论 -
Services学习
Service的基础 Service是Android四大组件之一,是在后台运行的没有界面的一个服务,除特殊指定外,与开启Service的组件运行在相同的进程和线程中,所以当要在Service里运行耗时的操作时,需要单独new一个线程。 Service的声明周期如上图所示。 只要被创建,onCreate函数只调用一次。 1. startService: 通过star原创 2016-01-27 14:23:48 · 464 阅读 · 0 评论 -
Fragment布局中动态添加显示新的layout.xml文件
在做跑步app的过程中,分为跑步状态、跑完状态和准备状态,三种状态里有不同的状态信息需要显示。而这三个状态都是在同一个fragment布局中的,虎扑跑步app中的做法是将各种信息和控件都放在fragment布局中,通过后台逻辑控制哪些显示、哪些不显示。同事说这种方法很乱,都在一个布局里。她说要将这三种状态做成三个layout,然后动态切换。刚开始我感觉在fragment里动态切换layout是不可行原创 2016-01-27 10:28:14 · 3231 阅读 · 0 评论 -
Android Service绑定
学习过程中,当较长时间不用到一些知识的时候,容易忘。就像看书一样,这时如果再看一遍的话很费劲。UML等图形化的表达方式更容易回忆,所以此时就用UML来表示一下Android服务绑定的过程。原创 2016-01-08 10:44:12 · 563 阅读 · 0 评论 -
Android Google Map学习四(地图组件的添加)
向应用中添加Google Map组件有两种基本的方式,一种是利用MapFragment(Fragment的子类,内部集成GoogleMap);另一种是用MapView(View的子类,内部集成GoogleMap)。一、MapFragment 向应用中添加MapFragment是最简便的添加方式。 根据fragment的添加方式,一种是利用布局文件静态添加,另外就是利用java代码动态添加。翻译 2016-01-20 09:30:27 · 2061 阅读 · 1 评论 -
Android Google Map学习三(显示位置的地址)
当显示给用户位置时,经纬度不能作为信息显示,而是要显示一个地址,比如某某街道、某某社区。这是就要用到地理编码和反编码。地理编码是将一个地址转换为经纬度坐标,反之成为反编码。 当要实现地理编码和反编码时,需要ACCESS_FINE_LOCATION权限。 显示地址简单的UML类图如下: 反解码的过程是同步的,解码过程可能会很慢。这时为了避免ANR,不要在UI线程中调用,所以另原创 2016-01-19 14:12:50 · 2005 阅读 · 0 评论 -
Android Google Map学习二(接受位置更新信息)
一、接收位置更新 当应用需要跟踪用户足迹,记录用户在不同时间的位置时,就需要周期的从fused location provider获取位置信息。这时就需要调用requestLocationUpdates()这个函数。这个函数需要在与Google Play Services连接成功后调用。 @Overridepublic void onConnected(Bundle connectionH翻译 2016-01-19 11:14:12 · 2117 阅读 · 0 评论 -
Android Google Map学习一(获取最近一次的位置)
App通过调用Google play services API来获取设备最近一次的位置信息,在大多数情况下最近一次的位置信息就是当前位置信息。翻译 2016-01-19 10:21:25 · 1455 阅读 · 0 评论 -
Android同一设备DPI数值大小与显示大小的关系
今天在用genymotion模拟器时,发现在相同分辨率(720*1280)下有不同的dpi,于是好奇地启动了一下不同的dpi,竟然发现在相同分辨率下dpi越大,显示的内容越大,相同的内容竟然显示不全了。这与window显示分辨率正好相反。这是720*1280分辨率下的160dpi显示的情况: 这是720*1280分辨率下的320dip显示的情况 于是好奇心就上来了,开始分析dpi的计算由来。原创 2016-01-16 18:10:14 · 16665 阅读 · 0 评论