Activity的跳转


Activity的跳转分为显式和隐式跳转
1显式跳转
Intent intent=new  Intent(当前Activity,你要跳转的Activity);//当前  activity.this   调转   activity.class  
startActivity(intent);//开始跳转
finish();//关闭当前活动
2隐式跳转
首先在清单中(AndroidManifest)配置属性
</activity>
        <activity
<intent-filter>
                <action android:name="com.aaa" />

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

                <data android:scheme="http://www.baidu.com" />
 </intent-filter>
</activity>
值的属性:
1>android:scheme   用于指定数据的协议部分  如 http部分
2.>android:host   用于指定数据的主机部分 如www,baidu.com
3>android:port   用于指定数据的端口部分,一般紧随在主机名后
4>android:path  用于指定主机名和端口之后的部分,如一段网址中跟在域名之后的内容
5>android:mimeType  用于指定可以处理数据的类型,允许使用通配符方式进行指定
标签的属性:
<action> 指明了当前活动可以说响应com.aaa这个action
<category> 包含了一些附加的信息,跟精确的指明了当前的活动能够响应的intent中还可能带有的category.
注意:中有<action>和<category>中的内容同时能够匹配上中Intent中指定的action和category时,才能响应intent(android.intent.category.DEFAULT一般在调用startActivity()方法是,会自动将这个category添加到Intent中)
<data>标签中指定的内容和Intent中携带的内容Data内容一致
Intent intent=new Intent("com.aa");
statrtActivity(intent);
finish();



补充:
每个Intent中只能指定一个action,但却能指定多个category不过必须在列表清单中声明
<category android:name=" com.example.Ativitytest.MY_CATEGORY"/>
如:
Intent intent=new Intent("com.aa");
intent.addCategory("com.bb");
statrtActivity(intent);
显式跳转和隐式跳转的区别

1、显式跳转明确知道目标类,所以一般使用在 本应用内Activity的跳转

2、隐式跳转不知道目标类,所以一般使用在跨应用Activity跳转
,而且满足要求的Activity都能列出来,用户体验较好


跳转到系统的应用
发送短信(不要忘了在列表清单中配置权限
  <uses-permission android:name="android.permission.SEND_SMS"/>)
                    String message = et_message.getText().toString();
                    String phone = et_phone.getText().toString();
                    //打开系统的短信应用,同时传递短信内容数据

                    Intent intent  = new Intent(Intent.ACTION_SENDTO);

                    intent.addCategory("android.intent.category.DEFAULT");
                    //传递电话号码
                    intent.setData(Uri.parse("smsto:"+phone));
                    //传递短信内容
                    intent.putExtra("sms_body", message);

                    //启动Activity
                    startActivity(intent);
打电话(在列表清单中配置权限
 <uses-permission android:name="android.permission.CALL_PHONE"/>)



          String phone = et_phone.getText().toString();
          Intent intent = new Intent(Intent.ACTION_CALL);
          intent.addCategory("android.intent.category.DEFAULT");
          intent.setData(Uri.parse("tel:"+phone));
          startActivity(intent);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值