1)顯示Intent使用 通過調(diào)用setClass()或setComponet()設(shè)置組件的意圖。給定了調(diào)用組件的名稱。 舉例,Activity參數(shù)傳遞: 傳遞參數(shù): Intent intent = new Intent(MainActivity.this, TwoActivity.class); intent.putExtra("age", 10); intent.putExtra("name", "Savant Pan"); 或用Bundle對(duì)象攜帶數(shù)據(jù)。 Bundle bundle = new Bundle(); bundle.putString("name", "Savant Pan"); bundle.putInt("age", 26); intent.putExtras(bundle); startActivity(intent); //不發(fā)送請(qǐng)求碼時(shí); MainActivity.this.startActivityForResult(intent, 3); //set a requestCode 3,發(fā)送請(qǐng)求碼時(shí),并重寫 onActivityResult();方法。 取得數(shù)據(jù): Intent intent=this.getIntent(); String name = intent.getStringExtra("name"); 關(guān)閉時(shí)傳回?cái)?shù)據(jù): Override onActivityResult(); setResult(12, intent); //send back with a resultCode requestCode和resultCode 請(qǐng)求碼用于標(biāo)識(shí)來源,比如有兩個(gè)按鈕同時(shí)打開一個(gè)Activity,則用它區(qū)分請(qǐng)求來源。 結(jié)果碼用于標(biāo)識(shí)返回結(jié)果來自哪一個(gè)Activity。 主動(dòng)關(guān)閉Activity,finish(); 而不是等待系統(tǒng)去完成。 2)隱式Intent 意圖對(duì)像本身并不知道要傳遞給哪個(gè)組件,至于傳遞給哪個(gè)組件是由Android平臺(tái)來決定的。 舉例,電話播號(hào)器: private Intent callIntent; callIntent = new Intent(Intent.ACTION_CALL , Uri.parse("tel:"+phone)); startActivity(callIntent); 在Mainifist文件中注冊(cè) <uses-permission android:name="android.permission.CALL_PHONE"/> 發(fā)短信: SmsManager smsManager = SmsManager.getDefault(); <uses-permission android:name="android.permission.SEND_SMS"/> 還有,如廣播接收者。
作者:savant-pan, 微博 http://weibo.com/panxuewen,歡迎交指正、交流。
|