安卓基础学习笔记(八)

/ 2评 / 0

显式启动
Intent构造器
(指明启动的组件);
隐式启动
(不会指明启动的组件)
显式启动的几种方式
1查看Intent构造
安卓推荐的构造方式

 public Intent(
 Context packageContext,--上下文对象
  Class cls--目标组件.class
  ) {
  mComponent = 
  new ComponentName(packageContext, cls);
    }
//其他类别创建显式意图的方式

    public Intent setComponent(
    ComponentName component) {
        mComponent = component;
        return this;
    }
 
   public Intent setClassName(
   Context packageContext,上下文对象
    String className:目标组件完整路径名
    ) {
        mComponent = new ComponentName(packageContext, className);
        return this;
    }  
    
   public Intent setClassName(
   String packageName,起始组件包名
    String className->目标组件完整路径名
    ) {
        mComponent = new ComponentName(packageName, className);
        return this;
 public Intent setClass
 (Context packageContext,上下文对象
  Class cls目标组件.class
  ) {
        mComponent = new ComponentName(packageContext, cls);
        return this;
    } 
    }   

----
测试显示的启动
1创建目标界面(activity)
绑定一个布局
注意activity要主配置文件进行注册
2当前界面添加按钮-->初始化设置监听器
android:onClick="按钮点击事件的名称"
要求acitivity添加对应事件
对单击事件做出处理
activity层必须添加方法
语法
public void 方法名(View v){
处理单击事件
}

3按钮单击事件进行测试

----------显式测试内容
1.intent(上下文对象,目标组件.class);-->安卓推荐

2.setClass方式-->安卓不推荐
intent.setClass(上下文对象, 目标组件.class)
测试步骤
1>创建一个无参的intent对象
2>用setClass()方法来显示跳转目标
startByClass()-->测试

3.setClassName 方式
测试步骤

1>创建一个无参构造
2>调用setClassName 进行目标组件的绑定
startByClassName1()
setClassName(
packageContext,-->上下文对象
className-->目标组件完整路径名(参照主配置文件)

)

4.通过setConpent()来指定目标--->推荐
测试步骤
1>创建无参intent
2>创建compentName 对象
3>将compentName对象绑定给intent
--------------------------------------
隐式启动(组件名或者指向不可见);
1隐式启动安卓系统内置组件
1>调用系统组件进行电话呼出
测试步骤
打电话的权限

android.permission.CALL_PHONE
创建一个intent(action)Intent.ACTION_CALL
给intent绑定data(Uri)
Uri data = Uri.parse("tel://10086")
startactivity(intent)
2>调用系统拨号界面

步骤
创建intent(action)
Intent.ACTION_DIAL
绑定data(Uri)
data = Uri.parse("tel://10086");
3>上网
创建intent(action)
Intent.ACTION_VIEW
绑定data(Uri)
data = Uri.parse("http://网址");
4>播放媒体文件
创建intent(action)
Intent.ACTION_VIEW
绑定data(Uri)
data = Uri.parse("file://文件的路径");
MP3播放
5>发送短信
(API等级高于或等于19)
1.SmsManager 需要使用权限
android.permission.SEND_SMS
2.创建SmsManager对象
SmsManager.getDefault();
3.发送短信

sendTextMessage:可用于发送短信
    public void sendTextMessage(
            String destinationAddress,:电话
             String scAddress,:短信中心号码null
              String text,发送的内容
            PendingIntent sentIntent:,发送短信成功后后续操作null
             PendingIntent deliveryIntent:发送短信失败作操作null
             ) {
        }
 public ArrayList
  divideMessage(String text) {
      将短信息进行拆分(拆分标准 中文70英文140)
    }

不受api等级限制发送
直接调用系统的发送短信工具
4 新建任务栈让acitivity 执行出栈的操作
步骤
intent(action);
setflag(标记)
addcategory(额外信息);
启动--activity结束

2自定义隐式启动(必须要掌握)
步骤
1>当前页
//创建的intent包含过滤器里的条件
条件为多个的则需要每个条件都要和目标组件对应

2>目标页
在acitivity标签创建
在标签内部添加对应的匹配条件


必备标签

3>书写过滤器
一个过滤器可以有多个action
一个activity可以有多个
intent-filter()也要保证每个过滤器里都有

安卓系统匹配的时候只要和其中一条action匹配上就可以跳转

------------------------------------
intent 数据传递
1激活组件
2数据的传递
Extra
存数据 put...();
取数据 get..();

2条回应:“安卓基础学习笔记(八)”

  1. 默然说道:

    大哥 真棒 向您看齐

  2. 默然说道:

    大哥 真棒 向你看齐