<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_一尘</title><subtitle type="text">修心 暖家 济友 哄崽-专注于 移动交互设 计,J2me,Android,Iphone,WindowsMobile移动方案开发...</subtitle><id>http://feed.cnblogs.com/blog/u/33133/rss</id><updated>2011-10-14T04:57:46Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/33133/rss"/><entry><id>http://www.cnblogs.com/wmj/archive/2011/09/30/2196734.html</id><title type="text">android设计那点事</title><summary type="text">说几个常见的问题，这些问题一般都是由逻辑问题引起，google工程师这样设计布局模式，是有逻辑上的道理的。错误一，Circular dependencies cannot exist in RelativeLayout这个错误，发生在相对布局模式中，在相对布局模式中，我们喜欢用同时使用android:layout_below和android:layout_above两个属性，前者是表示我在某某的上面，后者表示我在某某的上面， 如果存在对象A和对象B，假设对象A在对象B的上面，肯定对象B一定在对象A的下面，如果我们再定义一次，对象B在对象A的下面，那么，从逻辑上讲，是多此一举。 疑惑二，对...</summary><published>2011-09-30T09:29:00Z</published><updated>2011-09-30T09:29:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/09/30/2196734.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/09/30/2196734.html"/><content type="html">&lt;p&gt;说几个常见的问题，这些问题一般都是由逻辑问题引起，google工程师这样设计布局模式，是有逻辑上的道理的。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;错误一，&lt;/p&gt;&lt;div&gt;&lt;span style="color: red;"&gt;Circular dependencies cannot exist in RelativeLayout&lt;/span&gt;&lt;/div&gt;&lt;p&gt;这个错误，发生在相对布局模式中，&lt;br /&gt;&lt;/p&gt;&lt;p&gt;在相对布局模式中，我们喜欢用同时使用android:layout_below和android:layout_above两个属性，&lt;/p&gt;&lt;p&gt;前者是表示我在某某的上面，后者表示我在某某的上面， &lt;br /&gt;&lt;/p&gt;&lt;p&gt;如果存在对象A和对象B，假设对象A在对象B的上面，&lt;/p&gt;&lt;p&gt;肯定对象B一定在对象A的下面，&lt;/p&gt;&lt;p&gt;如果我们再定义一次，对象B在对象A的下面，那么，从逻辑上讲，是多此一举。 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;疑惑二，&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="color: red;"&gt;对象的android:layout_gravity="right"属性， 在线性模式中无效，线性模式中的对象不能居右？&lt;/span&gt;&lt;/div&gt;&lt;p&gt;google工程师设计这麽多的模式，不是没有道理的，就是要让设计人员根据需求找到最优和最方便的布局模式，&lt;/p&gt;&lt;p&gt;至于能不能居右，我想说是能做到的，可以设置Layout的重心居右（android:gravity="right"）， &lt;/p&gt;&lt;p&gt;这样也能是线性模式中的对象居右。&lt;/p&gt;&lt;p&gt;但我建议是，凡是涉及到有相对的居右居左或者居底居顶的对象，优先采用相对布局。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;错误三，&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="color: red;"&gt;android:layout_gravity&lt;/span&gt;&lt;span style="color: red;"&gt; 和&lt;/span&gt;&lt;span style="color: red;"&gt; android:layout_alignParentRight属性用错了布局模式&lt;/span&gt;&lt;/div&gt;&lt;p&gt;这个错误，我以前也经常犯，在线性模式中，我会使用&lt;span style="color: #000000;"&gt;android:layout_alignParentRight属性&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;虽然不会报错，但这个属性在线性模式中，也不起作用。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;android:layout_alignParentRight等&lt;/span&gt; 属性是专门用在相对布局模式中的属性，不要搞到其他模式中。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;疑惑三，&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;搞不清楚带layout和不带layout的关系&lt;/span&gt;&lt;/p&gt;&lt;p&gt;记住一点，凡是带layout字样的对是来描写对象与对象之间的关系的，不是对象内部的关系。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;疑惑四，&lt;/p&gt;&lt;p&gt;在动态给组件设置布局参数的时候,getLayoutParams返回null，这有是个逻辑问题，如果组件是我们动态构建的，并且没有初始化任何LayoutParams参数，这个对象当然为null，这时我们需要主动创建这个对象。 &lt;br /&gt;&lt;/p&gt;&lt;div&gt;LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;五，慎用android:layout_below和android:layout_above&lt;/p&gt;&lt;p&gt;假设有个这样的场景，LayoutA和LayoutB，两个容器，A在B的上面，而B又靠近父容器的底部android:layout_alignParentBottom="true"，如果把android:layout_above=B用在A上面，那么A的底部永远挨着B的顶部，而不管A容器里是否有组件。&lt;br /&gt;&lt;/p&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt; &lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wmj/aggbug/2196734.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wmj/archive/2011/09/30/2196734.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wmj/archive/2011/09/25/2190518.html</id><title type="text">今天，我将再次上路...</title><summary type="text">零八年，我不得已上路，为不安分的心，为自尊的生存，为自我的证明，路上的心酸，已容入我的心中， 心灵的困惑，已化作我的坚定，在路上，只为伴着我的人。 转眼，三年时光弹指间便成为过去，回想当时的懵懂无知，感觉自己就是在赌气，完全没有目标；如今，我不在徘徊，不再焦虑，不在恐惧。我没有被失败击倒，我爬起来了，我无时不在寻找机会。 现在的我不同了，有房有老婆有宝宝，做事前，我得想想我的家人，我得稳妥起见，在有保障的前提下，寻找机会。 今天，我将再次上路...</summary><published>2011-09-25T14:05:00Z</published><updated>2011-09-25T14:05:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/09/25/2190518.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/09/25/2190518.html"/><content type="html">&lt;div&gt;零八年，我不得已上路，为不安分的心，为自尊的生存，为自我的证明，路上的心酸，已容入我的心中，&lt;br /&gt; 心灵的困惑，已化作我的坚定，在路上，只为伴着我的人。&lt;br /&gt; &lt;br /&gt; 转眼，三年时光弹指间便成为过去，回想当时的懵懂无知，感觉自己就是在赌气，完全没有目标；如今，我不在徘徊，不再焦虑，不在恐惧。我没有被失败击倒，我爬起来了，我无时不在寻找机会。&lt;br /&gt;  &lt;br /&gt; 现在的我不同了，有房有老婆有宝宝，做事前，我得想想我的家人，我得稳妥起见，在有保障的前提下，寻找机会。&lt;br /&gt; &lt;br /&gt; 今天，我将再次上路...&lt;/div&gt;&lt;img src="http://www.cnblogs.com/wmj/aggbug/2190518.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wmj/archive/2011/09/25/2190518.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wmj/archive/2011/09/14/2176145.html</id><title type="text">如何更好的思考？</title><summary type="text">经常听到有人说，信息不对称，导致决策失误，难道信息对称了，决策就不会失误了吗？最近正在关注这方面的东西，我说的东西不见得全是对的，神马事都是相对而言的，在这个时刻对头，在某个时刻可能又不对头，我只是我把想发的牢骚记下来而已。你在逛街的时候，看到某宠物狗，我们称之为张飞狗，它玩得正欢，这时你跑过去踹它一脚，这个动作之后，大概会又两种结果，第一种，张飞咬你一口，第二种，狗的主人也会踹你一脚。我们分析一下，狗咬你一口，很正常，因为你先踹的它，它是狗，你踹它，它的本能本性会告诉它，它只想咬你一口，如果你被咬，你要理解，要保持冷静，这是你的不对。如果狗主人踹了你，按照上面逻辑，我们可以推导出，狗主人他根</summary><published>2011-09-14T06:18:00Z</published><updated>2011-09-14T06:18:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/09/14/2176145.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/09/14/2176145.html"/><content type="html">&lt;div&gt;经常听到有人说，信息不对称，导致决策失误，难道信息对称了，决策就不会失误了吗？&lt;br /&gt;&lt;br /&gt;最近正在关注这方面的东西，我说的东西不见得全是对的，神马事都是相对而言的，在&lt;br /&gt;这个时刻对头，在某个时刻可能又不对头，我只是我把想发的牢骚记下来而已。&lt;br /&gt;&lt;br /&gt;你在逛街的时候，看到某宠物狗，我们称之为张飞狗，它玩得正欢，这时你跑过去踹它一脚，&lt;br /&gt;这个动作之后，大概会又两种结果，第一种，张飞咬你一口，第二种，狗的主人也会踹你一脚。&lt;br /&gt;&lt;br /&gt;我们分析一下，狗咬你一口，很正常，因为你先踹的它，它是狗，你踹它，它的本能本性会告诉它，&lt;br /&gt;它只想咬你一口，如果你被咬，你要理解，要保持冷静，这是你的不对。&lt;br /&gt;&lt;br /&gt;如果狗主人踹了你，按照上面逻辑，我们可以推导出，狗主人他根本不是人，他也是一条狗，因为他&lt;br /&gt;只靠本能本性来决策。或者说你太弱小，狗主人认为你是一碟小菜，想揍你就揍你。&lt;br /&gt;&lt;br /&gt;人在做出决策之前，思维一般要经过两扇门，第一扇门我们称之为&amp;#8220;知识结构&amp;#8221;，可以简单的理解为&lt;br /&gt;我们从小到大学到的各种知识。第二扇门称之为&amp;#8220;心理结构，这个东西不太好理解，我们暂时认为是&lt;br /&gt;&amp;#8220;知识结构&amp;#8221;以外的东西，比如我们的情绪，我们的性格，我们的潜意识，甚至是我们的本能。&lt;br /&gt;这两者有时候会相互转化，相互影响，这是后话。&lt;br /&gt;&lt;br /&gt;思维是个严谨的东西，我们不能想当然的给事物下一个定义，这本身就是一个错误。定义是根基，如果&lt;br /&gt;根基都是否定的，上层建筑必然不牢靠。上面说到的张飞狗的决策就没有经过&amp;#8220;知识结构&amp;#8221;的过滤，只是简单&lt;br /&gt;的靠本能来决策。你踹我张飞，我就要咬你一口。而狗主人的决策可能经过&amp;#8220;知识结构&amp;#8221;这扇门，这很难说清楚。&lt;br /&gt;&lt;br /&gt;通过踹张飞狗这件事，我们发现一个秘密，在与对方博弈的时候，我们不能让对手控制我们的&amp;#8220;心理结构&amp;#8221;之门，&lt;br /&gt;我们要用理性，也就是我们的&amp;#8220;知识结构&amp;#8221;这扇门来和对方博弈。说得通俗点，就是不要感情用事。催眠师&lt;br /&gt;大多是通过建立一个虚无情景，突破我们的&amp;#8220;知识结构&amp;#8221;之门，控制我们的&amp;#8220;心理结构&amp;#8221;，达到催眠的效果。有人&lt;br /&gt;突然发疯，也是因为强大的外界信息冲击波，彻底的击败了他们的&amp;#8220;心理结构&amp;#8221;。&lt;br /&gt;&lt;br /&gt;有人可问会说，以后我再也不感情用事了，前面我说过，这两扇门是相互联系的。昨天在电视上看到这样一个&lt;br /&gt;情景，某老太太A因为家庭琐事，失手把她老公的腿打折了，A老太太的两位好公民儿子，硬是要把她告上法庭坐牢，&lt;br /&gt;并要求赔偿10几万的医药费，两位好公民儿子是何等的正义，何等的理性。我们换位思考一下，如果你身为母亲，你会怎么想？&lt;br /&gt;你不寒心？所以这两扇门之间的关系相当微妙，两者此消彼长。&lt;br /&gt;&lt;br /&gt;当下某些学者，自称国学大师，面上仁义道德，道貌岸然，写书的时候一套，暗地里搞的却是暗渡陈仓。&lt;br /&gt;为神马？因为某些所谓的大师，只不过是他的&amp;#8220;知识结构&amp;#8221;很强大，但不过仅此而已。他并没有把他强大的&amp;#8220;知识结构&amp;#8221;&lt;br /&gt;和&amp;#8220;心理结构&amp;#8221;联系起来，他从心底压根不承认自己书上写的某些价值取消，有时候，他们只不过是为了表演，&lt;br /&gt;只为了在我们这些屁民面前把游戏继续玩下去。&lt;br /&gt;&lt;br /&gt;你应该有这样的体验，曾经的某件事，你到如今还一直耿耿入怀，而对某些事情，睡一觉起来后就不记得了。&lt;br /&gt;某项技能过段时间后，你就生疏了，这又是为神马？道理还是一样的，某些情景某些技能没有纳入我们的&amp;#8220;心理结构&amp;#8221;，&lt;br /&gt;而有些深刻的情景已经渗入到你的心坎，你的情绪，你的价值取向，甚至是你的性格和潜意识。为什么有的武林高手和高僧，&lt;br /&gt;能出神入化，天人合一，就是这个道理。&lt;br /&gt;&lt;br /&gt;说得再多，不做也不顶屁用，人都是有惰性和奴性的，明白道理还不够，还要去格物，古人说的好，格物方能至知。&lt;br /&gt;做人不容易，要做一个活的明白的人更不容易。&lt;/div&gt;&lt;img src="http://www.cnblogs.com/wmj/aggbug/2176145.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wmj/archive/2011/09/14/2176145.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wmj/archive/2011/09/13/2174565.html</id><title type="text">转区分Activity的四种加载模式</title><summary type="text">在多Activity开发中，有可能是自己应用之间的Activity跳转，或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例，而不是产生大量重复的Activity。 这需要为Activity配置特定的加载模式，而不是使用默认的加载模式。 加载模式分类及在哪里配置 Activity有四种加载模式： standardsingleTopsingleTasksingleInstance 设置的位置在AndroidManifest.xml文件中activity元素的android:launchMode属性： &amp;lt;activity android:name=&amp;quot</summary><published>2011-09-13T03:44:00Z</published><updated>2011-09-13T03:44:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/09/13/2174565.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/09/13/2174565.html"/><content type="html">&lt;div&gt;&lt;p&gt;在多Activity开发中，有可能是自己应用之间的Activity跳转，或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例，而不是产生大量重复的Activity。&lt;/p&gt; &lt;p&gt;这需要为Activity配置特定的加载模式，而不是使用默认的加载模式。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;加载模式分类及在哪里配置&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Activity有四种加载模式：&lt;/p&gt; &lt;ul&gt;&lt;li&gt;standard&lt;/li&gt;&lt;li&gt;singleTop&lt;/li&gt;&lt;li&gt;singleTask&lt;/li&gt;&lt;li&gt;singleInstance&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;设置的位置在AndroidManifest.xml文件中activity元素的android:launchMode属性：&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;&amp;lt;activity android:name="ActB" &lt;strong&gt;android:launchMode&lt;/strong&gt;="singleTask"&amp;gt;&amp;lt;/activity&amp;gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;也可以在Eclipse ADT中图形界面中编辑：&lt;/p&gt; &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image54.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb54.png" border="0" height="144" width="498" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;区分Activity的加载模式，通过示例一目了然。这里编写了一个Activity A（ActA）和Activity B（ActB）循环跳转的例子。对加载模式修改和代码做稍微改动，就可以说明四种模式的区别。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;standard&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;首先说standard模式，也就是默认模式，不需要配置launchMode。先只写一个名为ActA的Activity：&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;package com.easymorse.activities; &lt;/p&gt; &lt;p&gt;import android.app.Activity;     &lt;br /&gt;import android.content.Intent;      &lt;br /&gt;import android.os.Bundle;      &lt;br /&gt;import android.view.View;      &lt;br /&gt;import android.view.View.OnClickListener;      &lt;br /&gt;import android.widget.Button;      &lt;br /&gt;import android.widget.LinearLayout;      &lt;br /&gt;import android.widget.TextView; &lt;/p&gt; &lt;p&gt;public class ActA extends Activity {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /** Called when the activity is first created. */      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCreate(Bundle savedInstanceState) {      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(savedInstanceState);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextView textView = new TextView(this);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; textView.setText(this + "");      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Button button = new Button(this);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; button.setText("go actA");      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; button.setOnClickListener(new OnClickListener() {      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onClick(View v) {      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Intent intent = new Intent();      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; intent.setClass(ActA.this, ActA.class);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; startActivity(intent);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LinearLayout layout = new LinearLayout(this);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layout.setOrientation(LinearLayout.VERTICAL);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layout.addView(textView);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layout.addView(button);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setContentView(layout);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;例子中都没有用layout，免得看着罗嗦。可见是ActA &amp;#8211;&amp;gt; ActA的例子。在界面中打印出对象的toString值可以根据hash code识别是否创建新ActA实例。&lt;/p&gt; &lt;p&gt;第一个界面：&lt;/p&gt; &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image55.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb55.png" border="0" height="101" width="244" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;点击按钮后：&lt;/p&gt; &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image56.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb56.png" border="0" height="114" width="244" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;可以多点几次。发现每次都创建了该Activity的新实例。standard的加载模式就是这样的，intent将发送给新的实例。&lt;/p&gt; &lt;p&gt;现在点Android设备的回退键，可以看到是按照刚才创建Activity实例的倒序依次出现，类似退栈的操作，而刚才操作跳转按钮的过程是压栈的操作。如下图：&lt;/p&gt; &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image57.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb57.png" border="0" height="233" width="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;singleTop&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;singleTop和standard模式，都会将intent发送新的实例（后两种模式不发送到新的实例，如果已经有了的话）。不 过，singleTop要求如果创建intent的时候栈顶已经有要创建的Activity的实例，则将intent发送给该实例，而不发送给新的实例。&lt;/p&gt; &lt;p&gt;还是用刚才的示例，只需将launchMode改为singleTop，就能看到区别。&lt;/p&gt; &lt;p&gt;运行的时候会发现，按多少遍按钮，都是相同的ActiA实例，因为该实例在栈顶，因此不会创建新的实例。如果回退，将退出应用。&lt;/p&gt; &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image58.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb58.png" border="0" height="144" width="244" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;singleTop模式，可用来解决栈顶多个重复相同的Activity的问题。&lt;/p&gt; &lt;p&gt;如果是A Activity跳转到B Activity，再跳转到A Activity，行为就和standard一样了，会在B Activity跳转到A Activity的时候创建A Activity的新实例，因为当时的栈顶不是A Activity实例。&lt;/p&gt; &lt;p&gt;ActA类稍作改动：&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;package com.easymorse.activities; &lt;/p&gt; &lt;p&gt;import android.app.Activity;     &lt;br /&gt;import android.content.Intent;      &lt;br /&gt;import android.os.Bundle;      &lt;br /&gt;import android.view.View;      &lt;br /&gt;import android.view.View.OnClickListener;      &lt;br /&gt;import android.widget.Button;      &lt;br /&gt;import android.widget.LinearLayout;      &lt;br /&gt;import android.widget.TextView; &lt;/p&gt; &lt;p&gt;public class ActA extends Activity {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /** Called when the activity is first created. */      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCreate(Bundle savedInstanceState) {      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(savedInstanceState);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextView textView = new TextView(this);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; textView.setText(this + "");      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Button button = new Button(this);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; button.setText("go actB");      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; button.setOnClickListener(new OnClickListener() {      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onClick(View v) {      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Intent intent = new Intent();      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; intent.setClass(ActA.this, ActB.class);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; startActivity(intent);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LinearLayout layout = new LinearLayout(this);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layout.setOrientation(LinearLayout.VERTICAL);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layout.addView(textView);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layout.addView(button);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setContentView(layout);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }      &lt;br /&gt;}&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;ActB类：&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;package com.easymorse.activities; &lt;/p&gt; &lt;p&gt;import android.app.Activity;     &lt;br /&gt;import android.content.Intent;      &lt;br /&gt;import android.os.Bundle;      &lt;br /&gt;import android.view.View;      &lt;br /&gt;import android.view.View.OnClickListener;      &lt;br /&gt;import android.widget.Button;      &lt;br /&gt;import android.widget.LinearLayout; &lt;/p&gt; &lt;p&gt;public class ActB extends Activity {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void onCreate(Bundle savedInstanceState) {      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(savedInstanceState);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Button button=new Button(this);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; button.setText("go actA");      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; button.setOnClickListener(new OnClickListener() {      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onClick(View v) {      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Intent intent=new Intent();      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; intent.setClass(ActB.this, ActA.class);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; startActivity(intent);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LinearLayout layout=new LinearLayout(this);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layout.addView(button);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setContentView(layout);      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }      &lt;br /&gt;}&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;ActB类使用默认（standard）加载，ActA使用singleTop加载。结果类似下图：&lt;/p&gt; &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image59.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb59.png" border="0" height="211" width="244" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;如果把ActA的加载模式改为standard，情况一样。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;singleTask&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;singleTask模式和后面的singleInstance模式都是只创建一个实例的。&lt;/p&gt; &lt;p&gt;当intent到来，需要创建singleTask模式Activity的时候，系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它。&lt;/p&gt; &lt;p&gt;把上面singleTop的实例中的ActA的launchMode改为singleTask，ActB的改为standard。那么会发现在ActA界面中按一次按钮：&lt;/p&gt; &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image60.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb60.png" border="0" height="217" width="244" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;然后在ActB1界面中按按钮，因为ActA是singleTask，会使用原来的ActA1实例。这时候栈内的情况:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image61.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb61.png" border="0" height="134" width="244" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;如果多次按按钮跳转，会发现始终只有ActA1这一个ActA类的实例。 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;singleInstance&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;解释singleInstance模式比较麻烦。&lt;/p&gt; &lt;p&gt;首先要说一下Task（任务）的概念。&lt;/p&gt; &lt;p&gt;如果是Swing或者Windows程序，可能有多个窗口可以切换，但是你无法在自己程序中复用人家的窗口。注意是直接复用人家的二进制代码，不是你拿到人家api后的源代码级调用。&lt;/p&gt; &lt;p&gt;Android可以做到，让别人的程序直接复用你的Activity（类似桌面程序的窗口）。&lt;/p&gt; &lt;p&gt;Android为提供这种机制，就引入了Task的概念。Task可以认为是一个栈，可放入多个Activity。比如启动一个应用，那么 Android就创建了一个Task，然后启动这个应用的入口Activity，就是intent-filter中配置为main和launch的那个 （见&lt;a href="http://marshal.easymorse.com/archives/2929" title="一个APK文件部署产生多个应用安装的效果"&gt;一个APK文件部署产生多个应用安装的效果&lt;/a&gt;）。这个Activity是根（Root）Activity，可能会在它的界面调用其他Activity，这些Activity如果按照上面那三个模式，也会在这个栈（Task）中，只是实例化的策略不同而已。&lt;/p&gt; &lt;p&gt;验证的办法是调用和打印Activity的taskId：&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;TextView textView2 = new TextView(this);     &lt;br /&gt;textView2.setText("task id: "+this.getTaskId());&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;会发现，无论切换Activity，taskId是相同的。&lt;/p&gt; &lt;p&gt;当然也可以在这个单一的Task栈中，放入别人的Activity，比如google地图，这样用户看过地图按回退键的时候，会退栈回到调用地图的Activity。对用户来说，并不觉得在操作多个应用。这就是Task的作用。&lt;/p&gt; &lt;p&gt;但是，有这样的需求，多个Task共享一个Activity（singleTask是在一个task中共享一个Activity）。&lt;/p&gt; &lt;p&gt;现成的例子是google地图。比如我有一个应用是导游方面的，其中调用的google地图Activity。那么现在我比如按home键，然后到应用列表中打开google地图，你会发现显示的就是刚才的地图，实际上是同一个Activity。&lt;/p&gt; &lt;p&gt;如果使用上面三种模式，是无法实现这个需求的。google地图应用中有多个上下文Activity，比如路线查询等的，导游应用也有一些上下文Activity。在各自应用中回退要回退到各自的上下文Activity中。&lt;/p&gt; &lt;p&gt;singleInstance模式解决了这个问题（绕了这么半天才说到正题）。让这个模式下的Activity单独在一个task栈中。这个栈只有一个Activity。导游应用和google地图应用发送的intent都由这个Activity接收和展示。&lt;/p&gt; &lt;p&gt;这里又有两个问题：&lt;/p&gt; &lt;ul&gt;&lt;li&gt;如果是这种情况，多个task栈也可以看作一个应用。比如导游应用启动地图Activity，实际上是在导游应用task栈之上 singleInstance模式创建的（如果还没有的话，如果有就是直接显示它）一个新栈，当这个栈里面的唯一Activity，地图Activity 回退的时候，只是把这个栈移开了，这样就看到导游应用刚才的Activity了；&lt;/li&gt;&lt;li&gt;多个应用（Task）共享一个Activity要求这些应用都没有退出，比如刚才强调要用home键从导游应用切换到地图应用。因为，如果退出导游应用，而这时也地图应用并未运行的话，那个单独的地图Activity（task）也会退出了。&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;如果还是拿刚才的ActA和ActB的示例，可以把ActB的模式改为singleInstance，ActA为standard，如果按一次按钮切换到ActB，看到现象用示意图类似这样：&lt;/p&gt; &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image62.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb62.png" border="0" height="222" width="244" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;如果是第一次按钮切换到ActB，在ActB在按按钮切换到ActA，然后再回退，示意图是：&lt;/p&gt; &lt;p&gt;&lt;a href="http://marshal.easymorse.com/wp-content/uploads/2010/07/image63.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/07/image_thumb63.png" border="0" height="166" width="342" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;另外，可以看到两个Activity的taskId是不同的。&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/wmj/aggbug/2174565.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wmj/archive/2011/09/13/2174565.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wmj/archive/2011/09/09/2172247.html</id><title type="text">昨晚梦到宋江和MZD</title><summary type="text">入秋时节，晚上没有了夏天的燥热，睡得很香，但做了一个奇怪的梦，梦到水泊梁山的土匪头子宋江和湘潭的MZD，宋江跟我诉苦说：兄弟啊！我好生后悔啊，我 千不该万不该，不该对朝廷抱有幻想，不该等着朝廷来招安，想我梁山108好汉，个个威猛豪杰，跟着我宋江，不但没有混到一官半职，到最后都死于朝廷之手。 我恨啊！ 宋江兄弟背着我仰天长叹，回过头来跟我说，我最对不住的就是林冲兄弟，想当年，高球于白虎堂陷害我兄弟，奸杀我兄嫂，不共戴天之仇，我却放了高球，我欠林 冲一条命啊（我当年割发承诺，招安后亲手割下高球的头）。毛站在边上一直抽着闷烟不语，突然对宋江发飙，叉着腰说，这就是不读历史的下场，这就是不懂 哲学...</summary><published>2011-09-09T02:38:00Z</published><updated>2011-09-09T02:38:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/09/09/2172247.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/09/09/2172247.html"/><content type="html">&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 入秋时节，晚上没有了夏天的燥热，睡得很香，但做了一个奇怪的梦，梦到水泊梁山的土匪头子宋江和湘潭的MZD，宋江跟我诉苦说：兄弟啊！我好生后悔啊，我 千不该万不该，不该对朝廷抱有幻想，不该等着朝廷来招安，想我梁山108好汉，个个威猛豪杰，跟着我宋江，不但没有混到一官半职，到最后都死于朝廷之手。 我恨啊！&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&lt;div id="sina_keyword_ad_area2"&gt;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; 宋江兄弟背着我仰天长叹，回过头来跟我说，我最对不住的就是林冲兄弟，想当年，高球于白虎堂陷害我兄弟，奸杀我兄嫂，不共戴天之仇，我却放了高球，我欠林 冲一条命啊（我当年割发承诺，招安后亲手割下高球的头）。毛站在边上一直抽着闷烟不语，突然对宋江发飙，叉着腰说，这就是不读历史的下场，这就是不懂 哲学的下场，你的&amp;#8221;替天行道&amp;#8220;这个搞法完全行不通的，一开始注定就是失败。你想朝廷招安你？你先去读读历史，不懂历史唯物辩证法，你就不要当老大嘛！&lt;br /&gt;  &lt;br /&gt; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; 宋江半天无语，我赶紧过去安慰他说，兄弟啊，我的处境和你当年一样啊，我正走在人生的十字路口，不晓得是往右走，还是往左走。我现在穷点我不怕，我现在没 地位我也不怕，我最怕的是我过了而立之年，还没找不到我要走的路。打工这条路就跟兄弟你当年等着朝廷来招安一样，都是等死。&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; 毛好像在思考着什么，乜着眼睛，正看着正在下山的夕阳，再次发飙，你比宋江还蠢，你是读过历史的人嘛，你有想法有技术，你怎么还走宋江那天路，你是不是也等着哪个牛逼公司来招安你？&lt;br /&gt;  &lt;br /&gt; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; 话音刚落，我背上感觉一股暖流滑过，手一摸才发现是我家的七公主撒了泡尿。	&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/wmj/aggbug/2172247.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wmj/archive/2011/09/09/2172247.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wmj/archive/2011/09/05/2166994.html</id><title type="text">我的瓶颈在哪里？</title><summary type="text">最近在处理一些比较复杂的问题，在解决这个问题的同时，我深刻的体会到，问题的本身，对我来讲，并不是最重要或者最紧要的（当我解决掉一个问题，其结果也只是问题不存在了）。 那么什么是最紧要的呢？我认为是我的思维能力或者思维方式，用最优质的方法去解决问题，这才是王道。在平平淡淡的生活中，我们会碰到大量的问题，有的问题 凭直觉就能解决，如果碰到稍微复杂的问题，我们就不知道从什么地方入手，也就是我们找不到解决问题的方法，或者叫切入点。 这是为什么？人的大脑很复杂，也可以说很简单。我们在看到问题的那一微秒开始，大脑高速运转，快速对问题建立模型（高等数学中有数学建模），大脑并对这个 模型迅速进行求解。...</summary><published>2011-09-05T01:08:00Z</published><updated>2011-09-05T01:08:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/09/05/2166994.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/09/05/2166994.html"/><content type="html">&lt;div&gt;&amp;nbsp;&amp;nbsp; 最近在处理一些比较复杂的问题，在解决这个问题的同时，我深刻的体会到，问题的本身，对我来讲，并不是最重要或者最紧要的（当我解决掉一个问题，其结果也只是问题不存在了）。&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; 那么什么是最紧要的呢？我认为是我的思维能力或者思维方式，用最优质的方法去解决问题，这才是王道。在平平淡淡的生活中，我们会碰到大量的问题，有的问题 凭直觉就能解决，如果碰到稍微复杂的问题，我们就不知道从什么地方入手，也就是我们找不到解决问题的方法，或者叫切入点。&lt;br /&gt;  &lt;br /&gt; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; 这是为什么？人的大脑很复杂，也可以说很简单。我们在看到问题的那一微秒开始，大脑高速运转，快速对问题建立模型（高等数学中有数学建模），大脑并对这个 模型迅速进行求解。如果问题很简单，我们往往仅凭经验或者感觉就能快速在大脑在建模，并求出模型的解（有的是在潜意识或者不自觉的状态下进行的）。如果问题稍微复杂点，或者说我们以往的经验和直觉不 足以对现实世界的问题建立模型的时候，我们往往束手无策，这时候就感觉大脑很乱，前面我说过，人的大脑确实很复杂，很厉害，但有时候确实连一些稍微复杂点 的问题都解决不了。&lt;br /&gt;  &lt;br /&gt; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; 我想纠正我前面那句话，并不是大脑不能处理复杂点的问题，就好比我们手里有台多核CPU电脑，虽然处理能力强，但如果我们输入了电脑不能识别的指令，高速电脑照样干不了活，废铁一坨，我们的大脑也是如此。&lt;br /&gt;  &lt;br /&gt; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; 人在这个世上，可以这样讲我们一般要学习两门手艺，一门是待人接物，一门是解决实现生活中问题的能力（也就是大脑的思维能力），也就平常讲的EQ和IQ， 当然不包括QQ。人类的IQ并不是说你读的书越多，IQ智商就越高，这个东西不一定成正比，我们经常讲，我们不仅仅要学知识，更要学智慧，智慧才是你真正 需要的东西，没有知识，我们后台可以学。&lt;br /&gt;  &lt;br /&gt; &amp;nbsp;&lt;wbr&gt;&amp;nbsp;&lt;wbr&gt; 提高人的思维能力不是一天两天的事情，需要我们在生活的点点滴滴中多留个心眼。最近在当当网上看到一本比较不错的讲解解决问题方法的书，其中有几个观点讲 得很到位，问题是什么？这个问题谁的？问题的由来？哪种是解决问题的最优质的思维方式？我觉得大师已经说得很到位了，但万物都有他的特殊性，大师讲的是共 性，是一般规律。我们可以往上，引申到一个更智慧的高度，试问，我们真的有必要解决这个问题吗？你懂的。&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/wmj/aggbug/2166994.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wmj/archive/2011/09/05/2166994.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wmj/archive/2011/08/21/2148743.html</id><title type="text">敢于直面错误</title><summary type="text">为了保护好我和家人的腰，我特意买了个100多RMB的拖把，洗它的时候不需要用手去拧水，拖地的时候也不用弯腰，家人都很喜欢。我发现拖把头上有点灰尘，我好意把拖把头伸到阳台外面扬掉灰尘，结果拖把头掉到楼下了（拖把头是活动的） ，当时我潜意识的没敢看拖把头掉到什么地方，等我下楼去找拖把头的时候，发现死活也找不着， 有可能被人捡走了，也有可能掉到别人家的阳台上了（我住12楼），都怪自己当时没有看着拖把头掉下去，虽然只是个100多块的拖把头，我搞不懂，我为什么不敢看呢，我怕什么？ 拳击比赛中，在对方的重拳打在自己脸上的那一刹那，拳击手是不能闭眼躲避的，虽然知道自己的眉骨很有可能被打碎，还是要看清楚对方.</summary><published>2011-08-21T15:31:00Z</published><updated>2011-08-21T15:31:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/08/21/2148743.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/08/21/2148743.html"/><content type="html">&lt;p&gt;为了保护好我和家人的腰，我特意买了个100多RMB的拖把，洗它的时候不需要用手去拧水，拖地的时候也不用弯腰，家人都很喜欢。&lt;/p&gt;&lt;p&gt;我发现拖把头上有点灰尘，我好意把拖把头伸到阳台外面扬掉灰尘，结果拖把头掉到楼下了（拖把头是活动的） ，当时我潜意识的没敢看拖把头掉到什么地方，等我下楼去找拖把头的时候，发现死活也找不着， 有可能被人捡走了，也有可能掉到别人家的阳台上了（我住12楼），都怪自己当时没有看着拖把头掉下去，虽然只是个100多块的拖把头，我搞不懂，我为什么不敢看呢，我怕什么？&lt;/p&gt;&lt;p&gt;拳击比赛中，在对方的重拳打在自己脸上的那一刹那，拳击手是不能闭眼躲避的，虽然知道自己的眉骨很有可能被打碎，还是要看清楚对方的招数和套路，这样才能掌&lt;/p&gt;&lt;p&gt;握对方的拳路，才有可能取胜。在生活和工作中，我们经常会犯一些错误，我们是否敢及时的直面错误呢？是让错误渐渐淡忘，还是及时剖析错误呢？&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wmj/aggbug/2148743.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wmj/archive/2011/08/21/2148743.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wmj/archive/2011/06/17/2083440.html</id><title type="text">Learning objective-c 指针概念入门</title><summary type="text">这篇文章中，我们将会了解oc中指针的一些基本概念，我们可以这样来理解指针的概念，当你驱车在高速公路上，即使某个地方你不曾去过，但高速上只要有指示牌，你总是能准确的到达目的地。这是为什么，因为指示牌上显示有地址和方向箭头。高速公路上的指示牌就是我们计算机中的指针，她指向某个你要到达目的地的地址。 下面我们来看计算机领域的指针，假设count就是你要到达的目的地，而countPtr就是在高速公路上看到的指向count这个地方的指示牌，也就是计算机领域的指针，只要你按指示牌走(*countPtr)，你就能得到count那个地方的100美刀。</summary><published>2011-06-17T03:27:00Z</published><updated>2011-06-17T03:27:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/06/17/2083440.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/06/17/2083440.html"/><content type="html">&lt;p&gt;这篇文章中，我们将会了解oc中指针的一些基本概念，我们可以这样来理解指针的概念，当你驱车在高速公路上，即使某个地方你不曾去过，但高速上只要有指示&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;牌，你总是能准确的到达目的地。这是为什么，因为指示牌上显示有地址和方向箭头。高速公路上的指示牌就是我们计算机中的指针，她指向某个你要到达目的地的地&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;址。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/wmj/newMockup.png" height="130" width="476" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;下面我们来看计算机领域的指针，假设count就是你要到达的目的地，而countPtr就是在高速公路上看到的指向count这个地方的指示牌，也就是计算机领域的指针，&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;只要你按指示牌走(*countPtr)，你就能得到count那个地方的100美刀。&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wmj/aggbug/2083440.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wmj/archive/2011/06/17/2083440.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wmj/archive/2011/06/09/2075913.html</id><title type="text">健康美食</title><summary type="text">下面是我总结的一些煲汤经验莴笋炒鳝片排骨玉米汤排骨莲藕汤豆腐鱼汤香菇鸡汤</summary><published>2011-06-08T16:28:00Z</published><updated>2011-06-08T16:28:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/06/09/2075913.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/06/09/2075913.html"/><content type="html">&lt;div&gt;&lt;span style="color: #464646; font-family: verdana, 'ms song', 微软雅黑, 宋体, Arial, Helvetica, sans-serif; "&gt;&lt;font &gt;&lt;div style="font-size: x-large; line-height: normal; font-weight: bold; "&gt;&lt;span  style="white-space:pre"&gt;&amp;nbsp;	&lt;/span&gt;下面是我总结的一些煲汤经验&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #464646; font-size: 14px; line-height: 21px; font-weight: normal; "&gt;&lt;a id="homepage1_HomePageDays_DaysList_DayItem_14_DayList_14_TitleUrl_0" href="http://www.cnblogs.com/wmj/archive/2011/04/12/2013565.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #d84d2d; text-decoration: none; "&gt;莴笋炒鳝片&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size: x-large; line-height: normal; font-weight: bold; "&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="display: inline !important; "&gt;&lt;/p&gt;&lt;div style="font-size: x-large; line-height: normal; font-weight: bold; display: inline !important; "&gt;&lt;span style="font-size: 14px; line-height: 21px; font-weight: normal; "&gt;&lt;a id="homepage1_HomePageDays_DaysList_DayItem_15_DayList_15_TitleUrl_0" href="http://www.cnblogs.com/wmj/archive/2011/04/09/2010822.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #d84d2d; text-decoration: none; "&gt;排骨玉米汤&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style="font-size: x-large; line-height: normal; font-weight: bold; "&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="display: inline !important; "&gt;&lt;/p&gt;&lt;div style="font-size: x-large; line-height: normal; font-weight: bold; display: inline !important; "&gt;&lt;span style="font-size: 14px; line-height: 21px; font-weight: normal; "&gt;&lt;a id="homepage1_HomePageDays_ctl00_DayList_TitleUrl_0" href="http://www.cnblogs.com/wmj/archive/2011/04/06/2007279.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #d84d2d; text-decoration: none; "&gt;排骨莲藕汤&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style="font-size: x-large; line-height: normal; font-weight: bold; "&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="display: inline !important; "&gt;&lt;/p&gt;&lt;div style="font-size: x-large; line-height: normal; font-weight: bold; display: inline !important; "&gt;&lt;span style="font-size: 14px; line-height: 21px; font-weight: normal; "&gt;&lt;a id="homepage1_HomePageDays_ctl00_DayList_TitleUrl_2" href="http://www.cnblogs.com/wmj/archive/2011/03/30/1999801.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #d84d2d; text-decoration: none; "&gt;豆腐鱼汤&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style="font-size: x-large; line-height: normal; font-weight: bold; "&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;span  style="font-size: 14px; line-height: 21px; "&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;span  style="font-size: 14px; line-height: 21px; "&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;span  style="font-size: 14px; line-height: 21px; "&gt;&lt;strong style="font-size: x-large; line-height: normal; "&gt;&lt;span  style="font-weight: normal; "&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="display: inline !important; "&gt;&lt;/p&gt;&lt;div style="display: inline !important; "&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;strong style="font-size: x-large; line-height: normal; "&gt;&lt;strong&gt;&lt;span style="font-size: 14px; line-height: 21px; font-weight: normal; "&gt;&lt;a id="homepage1_HomePageDays_ctl00_DayList_TitleUrl_8" href="http://www.cnblogs.com/wmj/archive/2011/03/22/1991015.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #d84d2d; text-decoration: none; "&gt;香菇鸡汤&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;p&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&lt;strong style="font-size: x-large; line-height: normal; "&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/font&gt;&lt;/span&gt;&lt;font &gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&amp;nbsp;&lt;/strong&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="font-size: x-large; line-height: normal; font-weight: bold; "&gt;&lt;/p&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&amp;nbsp;&lt;/strong&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="font-size: x-large; line-height: normal; font-weight: bold; "&gt;&lt;/p&gt;&lt;strong style="font-size: x-large; font-weight: normal; line-height: normal; "&gt;&amp;nbsp;&lt;/strong&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;p style="line-height: normal; font-size: 12px; "&gt;&lt;/p&gt;&lt;/div&gt; &lt;div style="position: absolute; display: none; z-index: 9999;" id="livemargins_control"&gt;&lt;img src="chrome://livemargins/skin/monitor-background-horizontal.png" style="position: absolute;left:-77px;top:-5px" height="5" width="77"  alt="" /&gt;	&lt;img src="chrome://livemargins/skin/monitor-background-vertical.png" style="position: absolute;left:0;top:-5px;"  alt="" /&gt;	&lt;img id="monitor-play-button" src="chrome://livemargins/skin/monitor-play-button.png" onmouseover="this.style.opacity=1" onmouseout="this.style.opacity=0.5" style="position: absolute;left:1px;top:0;opacity:0.5;cursor:pointer"&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/wmj/aggbug/2075913.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wmj/archive/2011/06/09/2075913.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wmj/archive/2011/06/07/2074167.html</id><title type="text">iphone多视图应用</title><summary type="text">摘要：	手机应用程序最常见的操作就是界面跳转，本章将讲叙iphone多视图应用的原理和流程。题外话：	如果你有过安卓平台的开发经验，那么事情要好办得多，为什么这样讲呢？世间万物都有他相通的地方，安卓平台的开发环境虽然没有提及所谓的MVC模式，但她确实采用的是MVC模式，Res目录中的xml文件就是视图，而src目录中的Activity或Service就是控制器，数据层一般放在服务器端，这里暂不做介绍。	在我学习iphone平台的多视图应用的时候，我也是一头雾水，因为一开始我没有搞清楚iphone多视图采用的模式，这种方式是极为不利的，既浪费时间，也损失了不少脑细胞。	言归正传，在iphone的</summary><published>2011-06-07T03:35:00Z</published><updated>2011-06-07T03:35:00Z</updated><author><name>一尘</name><uri>http://www.cnblogs.com/wmj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wmj/archive/2011/06/07/2074167.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wmj/archive/2011/06/07/2074167.html"/><content type="html">该文被密码保护。</content></entry></feed>
