android addIdleHandler 空闲线程 源码分析


描述

在项目中偶然看到其他人有在用

1
2
3
4
5
6
7
8
Looper.myQueue().addIdleHandler(new IdleHandler() {

@Override
public boolean queueIdle() {
...
}

}

之前一直不知道这么写是怎么回事, 今天特意研究了一下源码, 搞清楚了IdleHandler的机制.


阅读全文 »

巧用enum枚举类来设置按钮等的不同状态变化


场景描述

我们的应用中常常会出现按钮等状态的变化,举个例子,当下载一个应用时,下载之前按钮的状态应为下载,并设定背景为蓝色,点击下载之后,状态变为进行中,并设定背景为红色,当下载完成了,状态变为安装,并设定背景为黄色。


相关代码

  • Status类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public enum Status {

/** 可以下载 */
STATUS_DOWNLOAD(
"下载",
R.color.blue),

/** 下载中 */
STATUS_DOWNLOAD_ING(
"下载中",
R.color.red),

/** 安装状态 */
STATUS_INSTALLED(
"安装",
R.color.yellow);

public String txt;

public int bgColor;

private GameInfoStatus(String txt, int bgColor) {
this.txt = txt;
this.bgColor = bgColor;
}

}
  • 设置

android studio mac 快捷键 总结 (不断更新)

最近公司的项目都已经迁移到了Android Studio上面进行开发,刚转过来各种不适应,甚至连快捷键都不知道,现在用得顺手一些了,总结一下开发中用到的快捷键,以后会根据新用到的快捷键进行更新~

阅读全文 »

多个Notification时,PendingIntent无效的解决方案

我们在使用android的通知栏(Notification)时,需要新建一个PendingIntent对象用于处理点击该通知之后的事件。

PendingIntent需要传入一个Intent对象,用于打开Activity、Broadcast或是Service。

阅读全文 »

关于多个Notification时,之前的PendingIntent设置无效的解决方案

关于多个Notification时,之前的PendingIntent设置无效的解决方案

我们在使用android的通知栏(Notification)时,需要新建一个PendingIntent对象用于处理点击该通知之后的事件。

PendingIntent需要传入一个Intent对象,用于打开Activity、Broadcast或是Service。

阅读全文 »

ListView部分更新

ListView 部分刷新

我们在Android应用开发中经常会用到ListView这个组件,关于它的特性以及如何优化,网上已经有了太多例子,我就不再赘述,不了解的可以去Google一下。

最近的项目中正好用到了带按钮、进度条的自定义样式的ListView,下面我就来讲一讲ListView中的部分刷新的方法。


适用情景

当ListView的item中出现需要更新状态的部件(比如Button、进度条等),已按钮的状态为例子,当点击这个按钮时,需要根据服务器端返回的状态码对这个按钮的状态的进行变化(如按钮文字的变化),这时如果采用一般的 notifyDataSetChanged() 方法的话,会更新整个ListView,造成ListView界面的闪烁,这会造成很不好的用户体验,所以为了能及时更新按钮的状态,又不造成界面的闪烁,我们就要用到了部分刷新。


阅读全文 »

自定义Android软键盘enter键

自定义Android软键盘enter键

问题描述:

你在EditText上输入以后,想在下一行输入框输入,可能需要去点击下一行输入框,让它获取焦点,也可能要隐藏软键盘,在点击输入框,弹出软键盘。或者已经到了最后一行输入框,输入完毕以后,要点击登录,注册,或者链接按钮,可能要去隐藏它,感觉操作狠繁琐。用户体验不好,有没有解决办法呢?

阅读全文 »

Java线程冲突问题--不安全的线程例子

Java线程安全问题

在平时编程中,我们会经常用到多线程,尤其是android中,但多线程也特别容易带来问题,比如线程冲突、死锁等问题,为了加深理解,我们先来回顾一下线程冲突问题。

阅读全文 »