【初学android】议论Activity

【初学android】讨论Activity
初学android,对比着J2EE来理解。
个人理解 startActivityForResult(intent, REQUEST_CODE)发出等待Resul的请求,并通过 第二个参数REQUEST_CODE作为比对标识,这时候线程(这里是Activity)挂起,不马上destroy,而是执行stop(或者pause吧,暂时不能理解太多)方法,等待result返回,调用下面的onActivityResult()方法。在调用onActivityResult()方法时,用第一个参数标识由哪一个activity发出请求,并用第二个参数标识由哪一个activity响应返回结果,第三个参数intent用来作数据的通信,即传递数据,类似集合,再通过getExtras()的方法,得到类似map的键值对的bundle来获取传递的数据。
public class IntentDemoActivity extends Activity {
    /** Called when the activity is first created. */
	
	private Button mainBtn = null;
	public final static int REQUEST_CODE = 1;
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mainBtn = (Button)findViewById(R.id.mainBtn);
        mainBtn.setOnClickListener(listener);
    }
    private OnClickListener listener = new OnClickListener() {
    	
    	@Override
    	public void onClick(View v) {
    		Intent intent = new Intent();
    		intent.setClass(IntentDemoActivity.this, SecondActivity.class);
    		intent.putExtra("str", "SecondActivity");
    		
    		startActivityForResult(intent, REQUEST_CODE);
    	}
    };

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		
		if(requestCode == REQUEST_CODE){
			
			if(resultCode == SecondActivity.RESULT_CODE){
				
				Bundle bundle = data.getExtras();
				String str = bundle.getString("back");
				Toast.makeText(IntentDemoActivity.this, str, Toast.LENGTH_LONG).show();
			}
		}
		
	}
    
}