android--Intent和IntentFilter詳解

Intent用於啓動Activity, Service, 以及BroadcastReceiver三種組件, 同時還是組件之間通信的重要媒介.

使用Intent啓動組件的優勢
1, Intent爲組件的啓動提供了一致的編程模型. 無論想要啓動的組件是Activity, Service, 還是BroadcastReceiver, 都可以使用Intent封裝啓動的意圖.
2, 在某些時候, 應用程序只是想啓動具有某種特徵的組件, 並不想和某個特定的組件耦合. 使用Intent可以方便的達到這種高層次解耦的目的.

Intent的Component屬性
Intent對象的setComponent(ComponentName comp)方法用於設置Intent的Component屬性. ComponentName包含如下幾個構造器:
ComponentName(String pkg, String cls)
ComponentName(Context pkg, String cls)
ComponentName(Context pkg, Class

String data = "Hello SecondActivity" ;
Intent intent = new Intent (當前Activity. this, 目標Activity.class ) ;
intent.putExtra( "傳入名稱", data) ;
startActivity(intent) ;

接受Activity代碼:

Intent intent = getIntent();
String data = intent.getStringExtra( "傳入名稱" );
Intent:用於參數回傳

先有傳入:

intent.setClass(MainActivity. this, Register_Activity.class );
startActivityForResult(intent,1);
startActivityForResult(Intent intent,int RequestCode);//把intent要啓動的目標Activity設置一個RequestCode值(當然RequestCode的值使大於等於0的一個值)。

在回傳:

Intent intent = new Intent();
intent.putExtra("data1",name.getText().toString() );
intent.putExtra("data2",textP1);
setResult(RESULT_OK,intent);
finish();//結束當前Activity

在接收:重寫方法 onActivityResult(intrequestCode, intresultCode,Intent data)
onActivityResult(int requestCode, int resultCode, Intent intent)
RequestCode的作用 :區別請求的activity,android將每個請求設定一個大於等於0的int值,這就是requestcode。
resultCode參數對應於子模塊中setResut(int resultCode, Intent intent)函數中的resultCode值,用於區別不同的返回結果(如請求正常、請求異常等)。
由此,在onActivityResult函數中即可利用requestCode區別開不同的返回結果。
而onActivityResult中的resultCode參數對應於子模塊中setResut(int resultCode, Intent intent)函數中的resultCode值,用於區別不同的返回結果(如請求正常、請求異常等)。

protected void onActivityResult(int requestCode, int resultCode , Intent data) {
    switch (requestCode) {
        case 1:
            if (resultCode == RESULT_OK) {
                data1 = data.getStringExtra( "data1");
                data2 = data.getStringExtra( "data2");
                name.setText( data1);
                edit_pwd.setText( data2);
                nameY = data1;
                edit_pwdyY = data2;
            }
            break;
        default:
    }
發佈了41 篇原創文章 · 獲贊 12 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章