Android 使用Intent隐式传递启动Activity

Intent传送分为显示和隐式传递

显示Intent传递


    
    
  1. Intent intent = new Intent(MainActivity. this,SecondActivity.class);
  2. startActivity(intent);

这个非常简单,只需要传入两个相关联上下文。

第一个:MainActivity.this就是指定当前的Activity

第二个:SecondActivity.class就是你要跳转的Activity

是不是非常简单???(前提得要在AndroidManifest进行Activity注册).


隐式Intent传递

隐式传递相对于显示Intent较委婉,不过也非常简单。

在AdnroidManifest.xml文件里


    
    
  1. <activity android:name= ".MainActivity">
  2. <intent-filter>
  3. <action android:name= "android.intent.action.MAIN"/>
  4. <category android:name= "android.intent.category.LAUNCHER" />
  5. </intent-filter>
  6. </activity>
  7. <activity android:name= ".SecondActivity">
  8. <intent-filter>
  9. <action android:name= "com.example.SECOND_ACTIVITY"/>
  10. <category android:name= "android.intent.category.DEFAULT"></category>
  11. </intent-filter>
  12. </activity>

在<intent-filter>标签里有非常重要的两个<action>和<category>两标签,这两个是必须同时存在的。

扫描二维码关注公众号,回复: 9616169 查看本文章

<action>指明了我们当前需要响应的activiity

<category>是附加信息


    
    
  1. button.setOnClickListener( new View.OnClickListener() {
  2. @Override
  3. public void onClick(View v) {
  4. Intent intent = new Intent( "com.example.SECOND_ACTIVITY");
  5. startActivity(intent);
  6. }
  7. });

所以,当我们使用隐式传递时,只需要传递SecondActiviity里的<action>里的com.example.SECOND_ACTIVITY(这个可以自己随便取)。

 <category android:name="android.intent.category.DEFAULT"></category>
    
    

表示当前的category是默认的,在使用IIntent时就会自动调用。

重点:每个Intent只能指定一个action,可以有多个actegory.


    
    
  1. Intent intent = new Intent( "com.example.SECOND_ACTIVITY");
  2. intent.addCategory( "second");
  3. startActivity(intent);

在这里添加了intent.addCategory("second");必须在AndroidManifest.xml里添加对应的category,如下:


    
    
  1.         <activity android:name= ".SecondActivity">
  2. <intent-filter>
  3. <action android:name= "com.example.SECOND_ACTIVITY"/>
  4. <category android:name= "android.intent.category.DEFAULT"></category>
  5. <category android:name= "second"/>
  6. </intent-filter>
  7. </activity>

还有很多隐式Intent用法:比如


    
    
  1. Intent intent = new Intent(Intent.ACTION_VIEW);
  2. intent.setData(Uri.parse( "http://www.baidu.com"));
  3. startActivity(intent);

Intent.ACTION_VIEW是系统内置的。就可以打开自己手机浏览器,进行访问。

发布了0 篇原创文章 · 获赞 0 · 访问量 529

Intent传送分为显示和隐式传递

显示Intent传递


  
  
  1. Intent intent = new Intent(MainActivity. this,SecondActivity.class);
  2. startActivity(intent);

这个非常简单,只需要传入两个相关联上下文。

第一个:MainActivity.this就是指定当前的Activity

第二个:SecondActivity.class就是你要跳转的Activity

是不是非常简单???(前提得要在AndroidManifest进行Activity注册).


隐式Intent传递

隐式传递相对于显示Intent较委婉,不过也非常简单。

在AdnroidManifest.xml文件里


  
  
  1. <activity android:name= ".MainActivity">
  2. <intent-filter>
  3. <action android:name= "android.intent.action.MAIN"/>
  4. <category android:name= "android.intent.category.LAUNCHER" />
  5. </intent-filter>
  6. </activity>
  7. <activity android:name= ".SecondActivity">
  8. <intent-filter>
  9. <action android:name= "com.example.SECOND_ACTIVITY"/>
  10. <category android:name= "android.intent.category.DEFAULT"></category>
  11. </intent-filter>
  12. </activity>

在<intent-filter>标签里有非常重要的两个<action>和<category>两标签,这两个是必须同时存在的。

<action>指明了我们当前需要响应的activiity

<category>是附加信息


  
  
  1. button.setOnClickListener( new View.OnClickListener() {
  2. @Override
  3. public void onClick(View v) {
  4. Intent intent = new Intent( "com.example.SECOND_ACTIVITY");
  5. startActivity(intent);
  6. }
  7. });

所以,当我们使用隐式传递时,只需要传递SecondActiviity里的<action>里的com.example.SECOND_ACTIVITY(这个可以自己随便取)。

 <category android:name="android.intent.category.DEFAULT"></category>
  
  

表示当前的category是默认的,在使用IIntent时就会自动调用。

重点:每个Intent只能指定一个action,可以有多个actegory.


  
  
  1. Intent intent = new Intent( "com.example.SECOND_ACTIVITY");
  2. intent.addCategory( "second");
  3. startActivity(intent);

在这里添加了intent.addCategory("second");必须在AndroidManifest.xml里添加对应的category,如下:


  
  
  1.         <activity android:name= ".SecondActivity">
  2. <intent-filter>
  3. <action android:name= "com.example.SECOND_ACTIVITY"/>
  4. <category android:name= "android.intent.category.DEFAULT"></category>
  5. <category android:name= "second"/>
  6. </intent-filter>
  7. </activity>

还有很多隐式Intent用法:比如


  
  
  1. Intent intent = new Intent(Intent.ACTION_VIEW);
  2. intent.setData(Uri.parse( "http://www.baidu.com"));
  3. startActivity(intent);

Intent.ACTION_VIEW是系统内置的。就可以打开自己手机浏览器,进行访问。

猜你喜欢

转载自blog.csdn.net/binbinbintony/article/details/104390438