摘要:一、需求 在应用开发过程中,有客户提出在设备开机后自动启动应用。 二、实现方法 实现方案:安卓系统每次开机的时候都会发送一个广播,监听这个广播,广播事件触发启动应用程序。 监听音频广播而不是启动广播,因为音频广播发送的早。 1. 监听广播 2. 静态注册
阅读全文
摘要:在RecyclerView更细数据时出现java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder错误时,有如下三种解决方案: 1. 自定义类继
阅读全文
摘要:一、需求 在Android开发过程中,弹出dialog后无法捕捉back键,点击back按键无响应。 二、解决方案 原因:弹出dialog后,activity失去焦点,dialog获得当前焦点。 解决办法:在dialog中可以通过调用setOnKeyListener()方法来为dialog增加按键事
阅读全文
摘要:一、需求 在Android应该开发过程中,用到了USB通讯,需要应用监控USB设备的插入和拔出,从而刷新USB设备列表。 二、实现 在使用时,需要register和unregister。 通过UsbDevice device = (UsbDevice) intent.getParcelableExt
阅读全文
摘要:一、需求 在应用开发过程中,启动服务开启线程锁等待服务返回解锁,为了避免点击home键使线程锁卡死的bug,需要监控home键,解锁线程。 二、实现 在应用时,需要register和unregister。
阅读全文
摘要:一、需求 开发横屏设备的app时,发现preference显示的都是上下结构,因此需要自定义preference实现横屏显示。 二、layout实现 三、EditTextPreference 四、ListPreference 五、CheckBoxPreference 六、XML文件
阅读全文
摘要:一、需求 activity + fragment实现tab,并可以滑动切换tab。 需要导入compile 'com.android.support:design:25.3.1' 二、layout实现 三、activity + fragment 1、activity实现 2、适配器的实现 实现act
阅读全文
摘要:一、需求 Android本身没有提供直接显示gif动画的相关控件,因此需要自定义GifImageView类来实现gif的播放,主要是使用的Movie类来解决的。 二、自定义GifImageView 三、layout中添加控件 四、activity中实现 直接调用set方法,将gif资源传给gifvi
阅读全文
摘要:一、需求 在开发Android app过程中经常用到EditText,需要在界面加载完成后自动弹出系统键盘,更希望可以控制键盘的隐藏和显示,本文介绍其实现方法。 二、系统键盘的自动弹出 三、键盘的隐藏 四、键盘的显示
阅读全文
摘要:1、锁的类型 PowerManager中各种锁的类型对CPU 、屏幕、键盘的影响: PARTIAL_WAKE_LOCK : 保持CPU 运转,屏幕和键盘灯有可能是关闭的。 SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯 SCREEN_BRI
阅读全文
摘要:一、 分析 在Android Studio中开发时,findViewById是用的最多的函数之一。经常需要对返回的view进行类型转换,输入麻烦、代码丑陋。 本文提供两种方案来解决这个问题: 1、安装findViewByMe插件,快速批量生成findViewById 2、安装ButterKnife插
阅读全文
摘要:1、分析 EventBus是一个针对Android的事件发布和订阅的框架,主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。 优点:开销小,代码更优雅,以及将发送者和接收者解耦。 2、导入 在build.gradle
阅读全文
摘要:1、TabWidget 的 layout文件 2、tab布局的layout文件 3、MainActivity 4、tab切换时图标改变 由于四个tab切换时实现图标改变的.xml文件相似,只列出其中一个。
阅读全文
摘要:1、定义 内存泄漏指的是进程中某些对象(垃圾对象)已经没有使用价值了,但是它们却可以直接或间接地引用到gc roots导致无法被GC回收。 2、侦测工具 内存泄漏侦测工具:LeakCanary 3、内存泄漏场景 1)静态变量引用Activity对象 2)静态View 3)内部类和匿名类 4)Hand
阅读全文
摘要:出现了一个很神奇的现象,Android Studio导入其它项目均正常,但是导入某个项目(两天前还正常打开的项目)却一直卡在Building gradle project info 尝试了重启Android Studio、重启电脑、重新安装Android Studio、修改gradle版本等方案均没
阅读全文
摘要:1、需求 在项目开发过程中,打印小票前需要添加打印预览功能,交易数据在打印前转成bitmap然后直接打印,为了显示这个bitmap需要将其传给显示activity。 2、解决方法 把bitmap存储为byte数组,然后再通过Intent传递。 3、XML布局文件 4、生成bitmap 5、Actio
阅读全文
摘要:1、布局文件 2、color.xml文件 3、在MainActivity中声明成员变量 4、在MainActivity中的onCreate()方法中,添加文本框组件到线性布局管理器中 5、创建新线程,重写run()方法 6、创建一个Handler对象,重写handleMessage()方法 7、实现
阅读全文
摘要:看到别人炫酷的主题,好奇心使然,想要选择一个自己喜欢的炫酷背景,于是乎百度,动手尝试更换各种主题。 保存下来,留着以后想换主题的时候看。 1.Android Studio自带主题 File -> Settings -> Appearance & Behavior , 点击Appearance,找到T
阅读全文
摘要:1.首先在drawable文件夹中添加drawable文件checkbox_style.xml。 2.在values文件夹下的styles.xml文件中添加CustomCheckboxTheme样式。 3.在布局文件中使用CustomCheckboxTheme样式。
阅读全文
摘要:在实践中发现,有些需要打印的小票高度小于屏幕的高度,而有些小票内容过多高度高于屏幕高度。 小于屏幕高度的布局文件转成bitmap较为容易,高于屏幕高度的布局文件转成长图bitmap较为复杂。 一.小于屏幕高度的布局文件转成bitmap 1.需求 在交易过程中常常需要打印小票,利用布局文件组织小票格式
阅读全文