- 浏览: 156707 次
- 性别:
- 来自: 北京
最新评论
-
ysc123shift:
感谢博主,提供灵感并行到了我遇到问题的解决方法:注释onSto ...
Activity中onStop和onDestroy方法延迟调用BUG解决 -
砺雪凝霜:
可以加我QQ:1029457926 一起交流,一起进步,一起 ...
Android内存优化实践 -
zhu_jinlong:
非常好的文章,做到这些并牢记处理原则,可以远离memory l ...
Android内存优化实践 -
zhu_jinlong:
Volley持有context引用导致的memory leak ...
那些年我使用Volley遇到的坑 -
zhu_jinlong:
特地登录点赞!
如何做好程序员的自己
文章列表
1 概念
观察者设计模式是对象的行为模式,又叫做发布-订阅模式、模型-视图模式,源-监听器模式或从属者模式 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
2 观察者模式的结构
抽象主题(Subject)角色:主题角色把所有观察者对象的引用保存在一个聚集(比如Vector对象)里,每个主题都可以有任何数量的观察者。抽象主题提供:所有观察者的集合(observers),增加(attach)和删除(detach)观察者方法、通知观察者(notifyO ...
android开源项目总结
android开源
Android开源项目分类汇总
转自:http://hunankeda110.iteye.com/blog/2103569
前段时间写了一篇关于android夜间模式的博客地址是:http://1029457926.iteye.com/blog/2202106,原理是在Activity的启动之前判断是否是黑夜模式,然后调用setTheme方法来设置相应的布局。下面讲讲如何用代码来实现:
原理都差不多都是根据当前app是否是模式(白天和黑夜),然后去改变控件的属性。
步骤如下:
1 为View准备白天和黑夜的2种不同的属性布局
一个线性布局可能白天的背景和黑夜的背景都是不同,还有一个TextView的字体颜色白天和黑夜也可能不同。所以我们要 ...
上一篇博客(http://1029457926.iteye.com/blog/2203653)详细的讲了Volley的原理及用法,在实际开发中可能并不那么实用,下面来总结我们项目中是如何封装使用的。
1 Volley是用来请求网络数据的,首先我们要准备好要传递的URL参数
HashMap<String, String> params = new HashMap<String, String>();
params.put("user_id", userId);
params.put(&quo ...
1 Volley的介绍
Volley从服务器端请求字符串数据,图片数据,和JSON格式数据。Volley可以写出标准化的模板代码,并让我们更加关注于我们的业务逻辑,这对于我们的App来说是非常重要的。
Volley的优势:
自动的调度网络请求
多并发的网络请求
可以缓存http请求
支持请求的优先级
支持取消请求的API,可以取消单个请求,可以设置取消请求的范围域。
代码标准化,使开发者更容易专注于我们的业务的逻辑处理
更容易给UI填充来自网络请求的数据
Volley可以是作为调试和跟踪的工具
android夜间模式的实现
项目中要用到夜间模式,今天我就来总结,我是怎么实现的吧
实现原理:我们把当前的主题存放在sp中,每当activity启动之前调用setTheme方法设置相应的主题,setTheme方法一定要在super.onCreate()方法之前执行。
(1)在values文件夹下, 分别写一套夜间模式下的布局(theme_dark.xml)
和白天模式下的布局(theme_light.xml),
theme_dark.xml:
<?xml ...
利用synchronized关键字解决线程安全问题
1.线程安全问题
当多条语句在操作同一个线程共享数据时,一个线程对多条语句操作的时候 还没有执行完,另一个线程就参与进来执行,导致共享数据的错误。
2.解决方案 方法一: synchronized(object) { 同步代码块 }
方法二:把操作共享数据的代码封装成一个函数,并用syn ...
目前,有很多初学开发者对理解JSP代码的执行顺序上还比较混乱,经常有同事不清楚为什么有些js要写在下面。
首先,你要了解JSP的执行过程。
所有的JSP都会在客户端发出请求后被容器转译成servlet的源代码(java),然后再将源码(java)编译成servlet的类(class),放入到内存里面。
下面列举几个容易让人混淆的问题:
1、JSP中onload,或者jquery的document.ready,或者简写的$(function),是不是就相当于servlet中的初始化init()方法;
答案肯定是否定的,所有的jsp中的代码都是在s ...
特效要求:
1. 右边导航楼层是随着滚动条的滚动位置是不动的
2. 当滚动条滚动时,导航的div页面在我们页面的上方位置时(视野最明显的位置),对应的右边导航
的楼层的样式,会发生相应的变化。
3. 点击右边导航楼层的顶部或者底部,楼层会消失,显示。
4. 楼层下方置顶功能。
5. 只有当滚动条滚动到特定的高度时,右边导航的楼层才会出现,如果滚动条滚动的高度小于这个
临界值的时候,楼层是不会显示的。
特效原 ...
jquery解析一般json对象的方法,网上太多了,而解析类型为list的json数据的方法却很少,先在特意总结出来与给位分享。
思路如下:
(1)前台通过ajax向后台请求json数据
(2)struts2把list数据封装成json数据传到前台
(3)前台通过回调函数解析后台发过来的json数据
(4)显示json数据
代码太长了,我就不贴出来,要的直接去下载吧
这个插件的原型来自金典的my97datePicker日期插件,通过看该插件的API我把它改成了现在的订房日期插件。
该日期插件有以下特点:
1、入住日期默认是今天的时间,退房日期默认是明天的时间。
2、选入住日期时,比今天小的日期是不能被选的,退房日期比入住日期小的话,也是不能被选的。
3、订房的天数不能超过10天。
4、选中日期后,会显示今天是星期几,如果是日期是今天的话,会显示今天;如果日期是明 天的话会显示明天。[color=red][/color]
通知:
由于感觉在iteye上写作太麻烦,经常碰到各种格式问题,现在打算把博客搬迁至csdn
git如何在特定的commit上打tag
- 博客分类:
- git
git如何在特定的commit上打tag
默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?方法是找到历史提交的commit hash值,然后打上就可以了:
(1)利用git log命令查看要特定commit的hash值
$ git log --pretty=oneline --abbrev-commit
(2)使用 git tag命令打tag
没有tag信息说明方式:
$ git tag v0.9 xxxx
含有tag信息说明 ...
If-Modified-Since & If-None-MatchIf-Modified-Since,和 Last-Modified 一样都是用于记录页面最后修改时间的 HTTP 头信息,只是 Last-Modified 是由服务器往客户端发送的 HTTP 头,而 If-Modified-Since 则是由客户端往服务器发送的头,可 以看到,再 ...
/** 使用场景: 恢复某个错误提交的commit */
git reset --hard log号 回撤本地分支某个commit
/** 使用场景: git分支管理 */
git fetch # 把远程分支代码拉下来
git branch -r # 查看远程分支