Android 四大组件Activity

 

1. Activity状态转换

 

2. Activity生命周期

 

3. Activity栈

 

4. 启动另一个Activity

Intent intent =new Intent(FirstActivity.this,OtherActivity.class); 
startActivity(intent);

 

5. Activity之间通信

bundle方式

发送方:

Intent intent =new Intent(MainActivity.this,SecondActivity.class);
Bundle bundle =new Bundle();
bundle.putString("stringKey", "stringValue"); 
intent.putExtra("key", bundle);
startActivity(intent);

接收方:

Intent intent =getIntent();
Bundle bundle =intent.getBundleExtra("key");
bundle.getString("stringKey");

 

简化bundle

发送方:

        Intent intent = new Intent(MainActivity.this,SecondActivity.class);
        intent.putExtra("key","StringValue");
        startActivity(intent);

接收方:

        Intent intent = getIntent();
        String stringValue = intent.getStringExtra("key");

 

6. Activity的匹配规则

action category这两个属性都是字符串组成。

Action设置方法:

        Intent intent = new Intent();
        intent.setAction("com.android.test");

一个intent只能有一个action属性。

Action匹配规则:过滤规则中如果有一个或者多个action,那么某个intent的action想要匹配成功,该intent必须 ①必须有action属性值。②Action属性只要和任意一个action完全相同即可。

 

Category添加方法:

        Intent intent = new Intent();
        intent.addCategory("com.android.category.text");

一个intent可以有多个category属性。

Category匹配规则:过滤规则中如果有一个或者多个category,那么某个intent的category想要匹配成功,该intent必须 ①可以没有category属性。②如果有category属性,则所有的category属性都要检查,必须全部的category属性都能匹配,则该intent的category属性才算匹配成功。

 

DateType

data属性通常用于向Action属性提供操作的数据,Data属性接受一个Uri对象。

        Intent intent = new Intent();
        String data = "https://www.baidu.com/";
        Uri uri = Uri.parse(data);
        intent.setAction(Intent.ACTION_VIEW);
        intent.setData(uri);
        startActivity(intent);

一个 Intent 可以通过 URI 携带外部数据给目标组件。在 <intent-filter >节点中,通过 <data/>节点匹配外部数据。

mimeType 属性指定携带外部数据的数据类型,scheme 指定协议,host、port、path 指定数据的位置、端口、和路径。

<data android:mimeType="mimeType" 
      android:scheme="scheme"
      android:host="host" 
      android:port="port"
      android:path="path"/>

如果在 Intent Filter 中指定了这些属性,那么只有所有的属性都匹配成功时 URI 数据匹配才会成功。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值