在Android中Intent的概念及应用(一)——显示Intent和隐式Intent

Intent寻找目标组件的两种方式:

显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。

隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。

一、显示Intent:

创建一个Activity的完整过程:

1、手动创建一个类,让其继承自Activity:

  public class MyAty extends Activity

2、让其绑定一个视图:

  public class MyAty extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.myaty);

    }
  }

3、AndroidMainfest.xml文件进行Intent的配置:

  <activity android:name=".MyAty"/>  <!--<activity android:name="com.w.learnintent.MyAty"/>-->

4、启动的功能代码:

  activity_main.xml文件中:<Button android:text="Start MyAty" android:id="@+id/btnStartMyAty" />

  MainActivity.java文件中:

    findViewById(R.id.btnStartMyAty).setOnClickListener(new View.OnClickListener(){
      @Override
      public void onClick(View v) {
        startActivity(new Intent(MainActivity.this,MyAty.class));  //显示Intent
      }

二、隐式Intent:

1、AndroidMainfest.xml文件进行Intent的配置:

  <activity android:name=".MyAty">
    <intent-filter>
      <category android:name="android.intent.category.DEFAULT"/>
      <action android:name="com.w.learnIntent.intent.action.MyAty"/>
    </intent-filter>
  </activity>

2、在被启动的Activity——MyAty.java中创建一个字符串ACTION:

  public static final String ACTION = "com.w.learnIntent.intent.action.MyAty";

3、启动的功能代码:

  startActivity(new Intent(MyAty.ACTION));  //隐式Intent

三、不同应用程序之间(隐式Intent):

1、在原有项目基础上新建module,创建另一个程序。

2、原有项目AndroidMainfest.xml文件进行Intent的配置:

  <activity android:name=".MyAty" android:exported="false"> <!-- android:exported:该服务是否能够被其他应用程序组件调用或跟它交互-->
    <intent-filter>
      <category android:name="android.intent.category.DEFAULT"/>
      <action android:name="com.w.learnIntent.intent.action.MyAty"/>
    </intent-filter>
  </activity>

3、新项目的MainActivity.java文件中:

  findViewById(R.id.btnStartMyAty).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      try {
          startActivity(new Intent("com.w.learnIntent.intent.action.MyAty"));
        }catch(Exception e){
      Toast.makeText(MainActivity.this,"无法启动指定的Activity",Toast.LENGTH_SHORT).show();   //Toast.LENGTH_SHORT短时间呈现
    }
  }

 

转载于:https://www.cnblogs.com/MRDS-world/p/6164707.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值