自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 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 4282

原创 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 4409 2

原创 诗词整理一

一、风景旅游1、家乡日照漫卷秋风白浪天,轻推细沙昼无眠。最是人间好去处,蓝天碧海金沙滩。2、湖北恩施a)山连山水转瀑土家风情女儿幕峡谷开裂孤峰望石俊龙腾转地缝簇幺妹留恋倩女带路又是一方风土最是难说别离苦长风万里同天肚b)天斧千刃壁绝岩山水飞瀑挂前川碧玉奇秀翻绿浪一层一步立根盘3、坡峰岭秋匠巧工漫山红,青黄浸染叶层层。苍山不甘秋意浓,...

2019-06-25 22:53:20 577 1

原创 Android那些坑

fragment中startActivityForResult的接收问题:fragment中startActivityForResult如果想要在fragment中的onActivityResult接收,需要在activity中的onActivityResult调用super.onActivityResult,并且此时activity的onActivityResult接收fragment的req...

2017-12-15 11:08:36 293

原创 java运算表达式中的一个小坑

Java运算表达式中的一个小坑public class TypeAutoTest { public static void main(String [] args) { long testLong = 3; System.out.println(2592000 * 1000 - testLong - 1000); }}上述代码运行后,输出的结果是一个负

2017-12-05 20:00:56 323

原创 LayoutInflater的inflater引发的问题

LayoutInflater的inflater引发的问题平常在用LayoutInflater的inflater方法时,一般都是这样写:inflate(R.layout.a,null),第二个参数为啥用null都不明白,直到遇到用fragment中的布局replace一个linearlayout的时候,才真正去了解其中的含义。场景还原一、场景还原在Activity中用LinearLayout作为Fra

2017-10-14 14:09:17 576

原创 整形变量中位为1的个数

最近在做关于关于Socket通信相关的框架封装,想要遍历同一局域网中所有的设备,通过手机扫描获得设备列表,然后建立Socket通信。遍历局域网中的设备无非就是发一个UDP广播(组播),然后等待接收确认消息。但是在参考别人的代码的时候,发现也有通过给同一局域网内所有主机一对一发送UDP消息来实现的,这种实现的有点在于有些网络设置广播和组播都不可用,在此种情况下就能比较完整地搜索出设备;缺点是一对一发送

2017-03-24 14:13:09 655

原创 Java修改ArrayList的常见异常

Java修改ArrayList的常见异常**太长懒得看: 对ArrayList进行遍历和修改,要么都用Iterator,要么都不用Iterator。 如果非要一边用Iterator遍历,一边不用Iterator修改,请用CopyOnWriteArrayList。**开篇首先看一段有问题的代码:/** * 修改数组(添加或者删除)中的元素,此处以删除数组为例。 *

2016-11-30 22:42:35 2550

原创 Anroid连接BLE的两个坑

android,ble,蓝牙

2016-11-07 11:11:59 7334 1

原创 java socket demo

项目要做一个adb工厂测试的方法,需要用adb命令行发命令给apk,apk接收命令并执行相应的方法返回结果。此时apk相当于一个server,adb端相当于client。 在apk上建立一个server监听端口,当有消息到达时,启动新的线程处理socket://开启线程监听端口try { serverSocket = new ServerSocket(10086);} catch (S

2016-08-11 14:28:19 536

原创 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 370

原创 IntentService无法用bindService

在做adb工厂测试的一个apk的时候,要求用socket连接返回测试结果。那么apk中需要建立一个ServerSocket等待adb命令行的命令,当处理完后,需要通过socket返回给adb。这时,apk端可以看做一个server端,adb命令端可以看做client。如果要在apk端开启一个ServerSocket,那么需要开一个线程,在线程里进行等待客户端的接入。IntentService是比较好

2016-08-10 14:10:54 3138 2

原创 java在方法中的匿名内部类

考虑在方法public void method(final int value)中有一个匿名内部线程执行耗时操作,内部线程较长时间后可能会用到value。当在一个循环多次重复调用method时,会有很多的线程,这些线程用到value的顺序不定,是否会取到正确的value的值?为了测试,构建了如下类:   package com.landon.test;import java.util.loggin

2016-02-22 15:15:18 952

原创 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 4713

原创 Services学习

Service的基础  Service是Android四大组件之一,是在后台运行的没有界面的一个服务,除特殊指定外,与开启Service的组件运行在相同的进程和线程中,所以当要在Service里运行耗时的操作时,需要单独new一个线程。      Service的声明周期如上图所示。    只要被创建,onCreate函数只调用一次。 1. startService:   通过star

2016-01-27 14:23:48 454

原创 Fragment布局中动态添加显示新的layout.xml文件

在做跑步app的过程中,分为跑步状态、跑完状态和准备状态,三种状态里有不同的状态信息需要显示。而这三个状态都是在同一个fragment布局中的,虎扑跑步app中的做法是将各种信息和控件都放在fragment布局中,通过后台逻辑控制哪些显示、哪些不显示。同事说这种方法很乱,都在一个布局里。她说要将这三种状态做成三个layout,然后动态切换。刚开始我感觉在fragment里动态切换layout是不可行

2016-01-27 10:28:14 3216

翻译 Android Google Map学习四(地图组件的添加)

向应用中添加Google Map组件有两种基本的方式,一种是利用MapFragment(Fragment的子类,内部集成GoogleMap);另一种是用MapView(View的子类,内部集成GoogleMap)。一、MapFragment  向应用中添加MapFragment是最简便的添加方式。   根据fragment的添加方式,一种是利用布局文件静态添加,另外就是利用java代码动态添加。

2016-01-20 09:30:27 2028 1

转载 停机问题

引用源blog   有可计算的函数,当然也就有不可计算的函数。一个著名的例子就是停机问题。为了简化问题,这里我们将一个程序也作为数据对象来处理,并且能够作为某个程序的输入。如果P是一个程序,x是程序的输入,则P(x)为该程序的输出。   停机问题就是指:给定一个只需要一个输入的程序P,以及一个对象x,确定程序P在以x作为输入时是否会停机。   停机问题的可不判定性是指停机问题是不可计算的。下面

2016-01-19 18:31:51 1748

原创 Android Google Map学习三(显示位置的地址)

当显示给用户位置时,经纬度不能作为信息显示,而是要显示一个地址,比如某某街道、某某社区。这是就要用到地理编码和反编码。地理编码是将一个地址转换为经纬度坐标,反之成为反编码。   当要实现地理编码和反编码时,需要ACCESS_FINE_LOCATION权限。   显示地址简单的UML类图如下:      反解码的过程是同步的,解码过程可能会很慢。这时为了避免ANR,不要在UI线程中调用,所以另

2016-01-19 14:12:50 1985

翻译 Android Google Map学习二(接受位置更新信息)

一、接收位置更新  当应用需要跟踪用户足迹,记录用户在不同时间的位置时,就需要周期的从fused location provider获取位置信息。这时就需要调用requestLocationUpdates()这个函数。这个函数需要在与Google Play Services连接成功后调用。   @Overridepublic void onConnected(Bundle connectionH

2016-01-19 11:14:12 2081

翻译 Android Google Map学习一(获取最近一次的位置)

App通过调用Google play services API来获取设备最近一次的位置信息,在大多数情况下最近一次的位置信息就是当前位置信息。

2016-01-19 10:21:25 1433

原创 Android同一设备DPI数值大小与显示大小的关系

今天在用genymotion模拟器时,发现在相同分辨率(720*1280)下有不同的dpi,于是好奇地启动了一下不同的dpi,竟然发现在相同分辨率下dpi越大,显示的内容越大,相同的内容竟然显示不全了。这与window显示分辨率正好相反。这是720*1280分辨率下的160dpi显示的情况: 这是720*1280分辨率下的320dip显示的情况   于是好奇心就上来了,开始分析dpi的计算由来。

2016-01-16 18:10:14 16578

原创 Android之fragment的两种创建方式

Android中fragment因为轻量级,所以用到的非常多。而之前不是很熟悉,所以整理一下fragment的创建方式。

2016-01-14 10:54:23 640

原创 Android Service绑定

学习过程中,当较长时间不用到一些知识的时候,容易忘。就像看书一样,这时如果再看一遍的话很费劲。UML等图形化的表达方式更容易回忆,所以此时就用UML来表示一下Android服务绑定的过程。

2016-01-08 10:44:12 543

原创 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 392

原创 设计模式之单例模式

注:代码来自Head First 设计模式单例模式是很简单的一种设计模式,不过当与多线程结合在一起的时候,需要考虑的细节就不少了。 首先看单例模式的经典实现:package com.landon.singleton;public class Singleton { private static Singleton uniqueInstance; // 单例模式的构造函数属性为私有

2015-12-05 17:28:08 341

原创 java多线程

一、java实现多线程的两种方式:1、继承Thread类,重写run方法,然后调用对象的start方法启动新的线程2、实现Runnable接口,并将该实现作为参数传递给新的Thread对象作为构造参数,然后调用Thread对象的start方法启动新的线程尽量用第二种方法,因为java不支持多继承,用继承的方法可能会与此发生冲突。二、线程的同步使用synchronized关键

2015-11-03 16:51:07 377

原创 java参数传递

java参数传递也分为值传递和引用传递,这个传引用和c++中的引用(操作符&)是不一样的。 c++中的引用(&)表示别名。java中的引用和指针更像。在java中: A a = new A(1); A b = new A(2); b = a; 没有问题,a 和 b引用同一个对象A(2),原来的A(1)成为没有被引用的对象。垃圾回

2015-10-21 18:01:25 405

原创 C专家编程读书笔记一:C语言晦涩难懂的声明

理解C语言声明的优先级规则:声明从它的名字开始读取,然后按照优先级顺序依次读取优先级从高到低依次是:          B1     声明中被括号括起来的那部分          B2     后缀操作符:括号()表示是一个函数,二方括号[]表示这是一个数组          B3     前缀操作符:星号*表示“指向~的指针”     3、如果const和(或)vol

2015-08-03 10:44:48 876

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除