http://blog.csdn.net/melody_lu123/article/details/6888167
http://www.cnblogs.com/alex-tech/archive/2012/04/13/2445990.html