具体代码实现详见博客http://www.jianshu.com/p/dd0904caf32d