【初学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来获取传递的数据。
初学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(); } } } }