<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[guiyichen的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/guiyichen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; guiyichen]]></copyright><item><title><![CDATA[Java对线程大结局-总结]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/78636759</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/78636759</guid><author>guiyichen</author><pubDate>Sun, 26 Nov 2017 12:50:06 +0800</pubDate><description><![CDATA[从九月二十号开始到今天十一月二十三号，整整两个月啊，Java多线程这本书终于完整看完了，现在开始整理Java多线程全部内容、也算是一次回顾与总结。
 
一、     走进Java世界中的线程
这节主要了解到Java线程运行的各种状态：new、runnable、terminated、blocked、waiting、timed_waiting
 及各状态间关系
二、     多线程的目标与挑]]></description><category></category></item><item><title><![CDATA[contentProvider生命周期]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329552</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329552</guid><author>guiyichen</author><pubDate>Fri, 21 Apr 2017 09:55:09 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[contentProvider生命周期]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/84883058</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/84883058</guid><author>guiyichen</author><pubDate>Fri, 21 Apr 2017 09:55:09 +0800</pubDate><description><![CDATA[contentProvider的生命周期、理解应该跟进程一样，它作为系统应用组件、其生命周期应该跟app应用的生命周期类似，只是它属于系统应用、所以随系统启动而初始化，随系统关机而结束；但也存在其他状态下结束进程、比如说系统内存不够时，进行内存回收、会根据生成时间态、用户操作等情况进行是否内存回收...]]></description><category></category></item><item><title><![CDATA[组合模式]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329551</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329551</guid><author>guiyichen</author><pubDate>Mon, 17 Aug 2015 08:48:14 +0800</pubDate><description><![CDATA[性。

2、	关键是一个抽象类，声明所有的组合对象共享的一些操作；子类实现自己所需要的操作。结构模式的实质是递归。

3、	结构：



[img]http://dl2.iteye.com/upload/attachment/0111/0219/d32b2544-f19d-3d3f-8bb4-b914b3b60d29.png[/img]

	
Composite:为组合模式中的对象声明接口，在适当情况下实现所有类共有接口的缺省行为。
Leaf：实现子类有关操作的对象。

用户接口]]></description><category></category></item><item><title><![CDATA[组合模式]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/84737831</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/84737831</guid><author>guiyichen</author><pubDate>Mon, 17 Aug 2015 08:48:14 +0800</pubDate><description><![CDATA[[size=large]

组合模式

1、	意图：将对象组合成树形结构以表示“部分”-“整体”的层次结构。组合模式是得对单个对象和对组合对象的使用具有一致性。

2、	关键是一个抽象类，声明所有的组合对象共享的一些操作；子类实现自己所需要的操作。结构模式的实质是递归。

3、	结构：



[img]http://dl2.iteye.com/upload/attachme...]]></description><category></category></item><item><title><![CDATA[Fragment生命周期]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329550</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329550</guid><author>guiyichen</author><pubDate>Tue, 11 Aug 2015 21:02:37 +0800</pubDate><description><![CDATA[:创建frament时被回调，只调用一次。

onCreateView():每次创建、绘制该Fragment的view组件时被回调，返回view组件。

onActivityCreated():当fragment所在的activity被启动完成后回调该方法。

onStart():启动fragment时被回调

onResume(): 恢复fragment时被回调，onStart()方法后一定会回调该方法。

onPause():暂停fragment时被回调。

onStop():停]]></description><category></category></item><item><title><![CDATA[Fragment生命周期]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/84737049</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/84737049</guid><author>guiyichen</author><pubDate>Tue, 11 Aug 2015 21:02:37 +0800</pubDate><description><![CDATA[[size=large]

Fragment的生命周期中有如下方法会被系统回调：

onAttach() : 当fragment被添加到activity时被回调，但只会被调用一次。

onCreate(Bundle savedStatus):创建frament时被回调，只调用一次。

onCreateView():每次创建、绘制该Fragment的view组件时被回调，返回view...]]></description><category></category></item><item><title><![CDATA[Handler  message  looper三者间的信息通信]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329549</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329549</guid><author>guiyichen</author><pubDate>Thu, 06 Aug 2015 09:19:22 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Handler  message  looper三者间的信息通信]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/84736246</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/84736246</guid><author>guiyichen</author><pubDate>Thu, 06 Aug 2015 09:19:22 +0800</pubDate><description><![CDATA[[size=large]

Handler  message  looper三者间的信息通信
三者组成一个异步消息处理线程
在应用时、我们一般常重写handlerMessage方法，来刷新UI或者进行线程间的信息通信。但内部的实现过程我们需要通过查看源代码来了解。分析如下：
线程启动后，先调用Looper中的prepare()方法、方法中判断是否有Looper对象，没有则进行实例化并将其...]]></description><category></category></item><item><title><![CDATA[设计模式之适配器模式]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329548</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329548</guid><author>guiyichen</author><pubDate>Tue, 04 Aug 2015 21:26:06 +0800</pubDate><description><![CDATA[配的内容分为三类：
1、类的适配器模式
2、对象的适配器模式
3、接口的适配器模式

1、类的适配器模式：一个有方法的类，等待目标接口适配；通过Adapter类，将等待适配的类的方法扩展到目标接口中。
等待适配的类
[code=&quot;java&quot;]
public  class Source{
	public void method1(){
		System.out.println(“this is original method”);
	}
}

[/code]
]]></description><category></category></item><item><title><![CDATA[设计模式之适配器模式]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/84736026</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/84736026</guid><author>guiyichen</author><pubDate>Tue, 04 Aug 2015 21:26:06 +0800</pubDate><description><![CDATA[[size=large]
设计模式之适配器模式

作用：为了将某个类的接口转换成客户端期望的另一个接口，消除由于接口不匹配所造成的类的兼容性问题。
按适配的内容分为三类：
1、类的适配器模式
2、对象的适配器模式
3、接口的适配器模式

1、类的适配器模式：一个有方法的类，等待目标接口适配；通过Adapter类，将等待适配的类的方法扩展到目标接口中。
等待适配的类
[code...]]></description><category></category></item><item><title><![CDATA[android通用适配器]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329547</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329547</guid><author>guiyichen</author><pubDate>Tue, 28 Jul 2015 22:03:26 +0800</pubDate><description><![CDATA[ize();
	}
	@Override
	public T getItem(int position) {
		return mDatas.get(position);
	}
	@Override
	public long getItemId(int position) {
		return position;
	}

[/code]
[size=large]

2、getView方法中需要用到bean对象及holderView来初始化listView内容；所以通过抽象类中定义]]></description><category></category></item><item><title><![CDATA[android通用适配器]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/84734962</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/84734962</guid><author>guiyichen</author><pubDate>Tue, 28 Jul 2015 22:03:26 +0800</pubDate><description><![CDATA[[size=large]
通用适配器构建过程：

1、将共同的重写方法放抽象类中，如下面几个方法：

[/size]
[code=&quot;java&quot;]
@Override
	public int getCount() {
		return mDatas.size();
	}
	@Override
	public T getItem(int position) {
		retur...]]></description><category></category></item><item><title><![CDATA[uses-sdk:minSdkVersion 9 cannot be smaller than version 11 declared in library D]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329546</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329546</guid><author>guiyichen</author><pubDate>Tue, 28 Jul 2015 21:12:29 +0800</pubDate><description><![CDATA[
因为团队用的sdk版本为9，而我本地的sdk版本为11；所以我得将androidMainfest中minSdkVersion版本改成11
错误原因是之前将项目中各模块的gradle脚本中的最小sdk版本改成11不完全，各模块main
defaultConfig{
    applicationId &quot;com.pingan.lifeinsurance&quot;
    minSdkVersion 11
    targetSdkVersion 22

Android studio ]]></description><category></category></item><item><title><![CDATA[uses-sdk:minSdkVersion 9 cannot be smaller than version 11 declared in library D]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/84734956</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/84734956</guid><author>guiyichen</author><pubDate>Tue, 28 Jul 2015 21:12:29 +0800</pubDate><description><![CDATA[[size=large]
Android studio 导入源代码进行编译过程中报错：

错误uses-sdk:minSdkVersion 9 cannot be smaller than version 11 declared in library D://studio\....AndroidMainfest.xml

因为团队用的sdk版本为9，而我本地的sdk版本为11；所以我得将...]]></description><category></category></item><item><title><![CDATA[设计模式----解释器模式]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329545</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329545</guid><author>guiyichen</author><pubDate>Mon, 27 Jul 2015 20:48:31 +0800</pubDate><description><![CDATA[、但找不到感觉，而且在实际应用中也较少应用。后来、慢慢熟悉理解并应用java的各种基础知识后，对设计模式的应用便有了简单的了解，学起来也变得容易理解了。所以、学习设计模式前，对java的抽象类和接口及重写重载的定义和区别要有充分的理解。

设计模式的意义：也就是设计模式的六大原则。目的就是降低依赖、降低耦合。
开闭原则：扩展开放、修改关闭。
里氏代换原则：任何基类出现的地方、子类一定可以出现。
依赖倒转原则：针对接口编程、依赖抽象而不依赖具体。
接口隔离原则：使用多个接口要比使用单个接口要好。]]></description><category></category></item><item><title><![CDATA[设计模式----解释器模式]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/84734779</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/84734779</guid><author>guiyichen</author><pubDate>Mon, 27 Jul 2015 20:48:31 +0800</pubDate><description><![CDATA[[size=large]
设计模式的学习，我参考了开涛的博客；里面的内容讲解得比较详细。记得最开始学习设计模式是大二，那时从简单的抽象工厂模式开始着手、但找不到感觉，而且在实际应用中也较少应用。后来、慢慢熟悉理解并应用java的各种基础知识后，对设计模式的应用便有了简单的了解，学起来也变得容易理解了。所以、学习设计模式前，对java的抽象类和接口及重写重载的定义和区别要有充分的理解。

设计...]]></description><category></category></item><item><title><![CDATA[我同意优快云的博客搬家]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329544</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329544</guid><author>guiyichen</author><pubDate>Wed, 21 Jan 2015 11:34:30 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[js验证上传图片大小]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/88329543</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/88329543</guid><author>guiyichen</author><pubDate>Tue, 25 Nov 2014 21:52:39 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[js验证上传图片大小]]></title><link>https://blog.youkuaiyun.com/guiyichen/article/details/84687989</link><guid>https://blog.youkuaiyun.com/guiyichen/article/details/84687989</guid><author>guiyichen</author><pubDate>Tue, 25 Nov 2014 21:52:39 +0800</pubDate><description><![CDATA[
[size=large]
前端上传图片时，我们大多选择使用写好的组件来上传图片；但在应用过程中，有些框架就没有提供判断图片大小的方法，那么久需要我们自己用js实现。

针对浏览器内核的不同，我们判断图片大小的方法也不一样；所以，下面的代码可以应用在大多数市场份额的浏览器上。

大多数的验证并不是读取图片后判断其大小，而是用一种简便巧妙的方法读取文件所在本地系统中的大小属性。
下面看...]]></description><category></category></item></channel></rss>