问题焦点:设置活动启动模式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>