在Flag标志位设置t.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

与在androidManifest.xml中设置android:lauchmode="singleTop"

效果一样,

如下:

package com.singletop.test1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SingleTopTest1Activity extends Activity {
/** Called when the activity is first created. */
private Button btn1;
private String TAG="SingleTopTest1Activity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(mylistener);
Log.d(TAG,"11111oncreateid=="+this.getTaskId());
}
OnClickListener mylistener = new OnClickListener() {

public void onClick(View v) {
// TODO Auto-generated method stub
Intent t = new Intent();
t.setClass(SingleTopTest1Activity.this, SingleTopTest1Activity.class);
t.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(t);
}

};
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.d(TAG,"11111oncreateid=="+this.getTaskId());
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.d(TAG,"11111onPause=="+this.getTaskId());
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d(TAG,"11111onResume=="+this.getTaskId());
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.d(TAG,"11111onStop=="+this.getTaskId());
}
@Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
Log.d(TAG,"11111onNewIntent=="+this.getTaskId());
}


}

 

Log信息如下:

02-20 05:39:07.347: D/SingleTopTest1Activity(1249): 11111oncreateid==4
02-20 05:39:07.349: D/SingleTopTest1Activity(1249): 11111onResume==4
02-20 05:39:13.565: D/SingleTopTest1Activity(1249): 11111onPause==4
02-20 05:39:13.566: D/SingleTopTest1Activity(1249): 11111onNewIntent==4
02-20 05:39:13.566: D/SingleTopTest1Activity(1249): 11111onResume==4
02-20 05:39:23.197: D/SingleTopTest1Activity(1249): 11111onPause==4
02-20 05:39:23.810: D/SingleTopTest1Activity(1249): 11111onStop==4
02-20 05:39:23.813: D/SingleTopTest1Activity(1249): 11111oncreateid==4

不会new instance,而是调用onNewIntent。

还是这一个实例。

posted on 2012-02-20 13:44  snowdrop  阅读(4188)  评论(0编辑  收藏  举报