Activity通过startActivityForResult()启动自身,singleTop失效

问题焦点:设置活动启动模式singleTop失效

场景:一个activity通过button监听跳转到自身
原因:跳转时启动活动的方法是startActivityForResult()

换成startActivity()就正常。

想问的问题:当前的活动应该是在栈顶的啊,为什么点击button之后又去新创建了一个活动实例?
startActivityForResult()是在当前活动的onCreate()方法中的button的监听事件里调用的,这个方法只是在销毁活动之前给上一个活动传递数据,对活动的生命周期有影响吗?
singleTop模式没起作用,应该就是当前活动不在栈顶,和startActivityForResult()有什么冲突?百度没查到

代码附上:
FirstActivity.java

public class FirstActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        Log.d("FirstActivity","Task id is " + getTaskId() +this.toString());
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.first_layout);
        Button button1 = (Button) findViewById(R.id.button_1);
        button1.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                Intent intent = new Intent(FirstActivity.this,FirstActivity.class);
                startActivityForResult(intent,1);
//              startActivity(intent);
            }
        });
    }


}

AndroidManifest.xml

 <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name=".FirstActivity"
            android:launchMode="singleTop"
            android:label="This is FirstActity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

singletop就是在栈顶不创建

http://www.jb51.net/article/47599.htm

对,使用SingleTop或者SingleInstance的方式启动的Activity来说,调用startActivityForResult()系统
直接返回Activity.RESULT_CANCELED而不会再去等待返回