Intent的基本用法

Intent的显式意图

指明了Intent要跳转的目标活动的类名.

   startActivity(new Intent(Main2Activity.this,Main3Activity.class));

Intent的隐式意图

隐式意图比显式意图要含蓄的多。

  • 从MainActivity跳转到SecondActivity中
    1)在MainActivity中写
 public  void myStart(View view){    
    Intent intent=new Intent("com.example.administrator.intenttest.ACTION_START");    
    startActivity(intent);
    }

2)SecondActivity的配置文件中写

       
             
                 
          
      
      
  • 在SecondActivity的配置文件中指定两个category。
    com.example.administrator.intenttest是包名。
    如果只是给SecondActivity指定了两个category而MainActivity没有改变的话就跟上一中情况结果是一样的。






  • 在MainActivity跳转时中添加category,并且在SecondActivity的配置文件中指定两个category。
    在MainActivity中的意思就是不仅要根据action来找到目标activity还要根据category来查找activity。
 public  void myStart(View view){    
    Intent intent=new Intent("com.example.administrator.intenttest.ACTION_START");    
    startActivity(intent);
    }

每个Intent中只能指定一个action但却能指定多个category。

  • MainActivity跳转到指定的数据头部协议为“http”的应用。
    1)在MainActivity中写隐式跳转。
    public  void myStart(View view){    
      Intent intent=new Intent(Intent.ACTION_VIEW);   
      intent.setData(Uri.parse("http://www.baidu.com"));  
      startActivity(intent);}

2)在SecondActivity的配置文件中写

      
          
                  
                
    
  
  

最终的效果就是,当我点击MainActivity的按钮时会弹出

Intent的基本用法_第1张图片
Paste_Image.png

点击IntentTest项目时会跳转到SecondActivity。

Intent传递数值

1)MainActivity的代码是

      public void myStart(View view){  
      Intent intent=newIntent(MainActivity.this,SecondActivity.class); 
      startActivityForResult(intent,1);
      }
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {   
         switch (requestCode){        
                  case 1:           
                       if(resultCode==RESULT_OK){                
                          String returnData=data.getStringExtra("data_return");          
                          System.out.println(returnData);           
                       }           
                 break;        
                default:   
                 }
         }

2)SecondActivity

     public void mySecond(View view){   
         Intent intent=new Intent();    
         intent.putExtra("data_return","Hello Main");    
         setResult(RESULT_OK,intent);
         finish();
    }

回退的时候也要保存数据给MainActivity。

     @Overridepublic void onBackPressed() {    
            Intent intent=new Intent();    
            intent.putExtra("data_return","Hello Main");    
            setResult(RESULT_OK,intnent);
            finish();
      }

摘自:《第一行代码》

Intent启动组件的方法

  • Activity
    startActivity();
  • service
    startService();
    bindService();
  • Broadcasts
    sendBroadcasts( )
    sendOrderedBroadcasts( )
    sendStickyBroadcasts( )

摘自:
[Intent的简介以及属性的详解]
[Intent详解]
[I]

你可能感兴趣的:(Intent的基本用法)