android---(Intent)

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

不同的形式实现activity之间的切换

    //直接查找法
    public  void componentClick(View v){
        //Intent intent = new Intent();
        //ComponentName componentName = new ComponentName(this,Main2Activity2.class);
        //intent.setComponent(componentName);

        //上面的简写形式
        Intent intent = new Intent(this,Main2Activity2.class);

        startActivity(intent);//启动这个activity
    }
//通过action查找组件和category属性
    public void actionOclick(View v){

        Intent intent = new Intent();
        intent.setAction("com.My_ACTION");

        intent.addCategory("com.MY_CATEGORY");

        startActivity(intent);

    }
程序清单配置:需要配置 intent-filter
        <activity
            android:name=".Main2Activity3"
            android:label="Main2Activity3" >
            <intent-filter android:priority="2">
                <action android:name="com.My_ACTION"></action>

                <category android:name="android.intent.category.DEFAULT"></category>//必须
                <category android:name="com.MY_CATEGORY"></category>

            </intent-filter>
        </activity>

这里写图片描述

这里写图片描述

这里写图片描述


       //data属性与action配合合使用
    public  void dateClick(View v){

    //打开浏览器,并访问百度首页
    //因为这个意图符合浏览器的activity,所以能打开
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        Uri data = Uri.parse("http://www.baidu.com");

        intent.setData(data);

        startActivity(intent);
    }

清单配置:
        <activity
            android:name=".Main2Activity4"
            android:label="@string/title_activity_main24" >
            <intent-filter>

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

                <data android:scheme="http" android:host="www.baidu.com"></data>
            </intent-filter>
        </activity>

这里写图片描述

这里写图片描述

//使用type属性:表示数据类型 
    public void typeClick(View v){
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);

        Uri data = Uri.parse("http://www.baidu.com");
        intent.setData(data);
        //mime类型 
        intent.setDataAndType(data,"text/html");//intent.setData(data):不能单独使用,单独使用会将data 自动设置为null

        startActivity(intent);

    }

        <activity
            android:name=".MainActivity2Activity"
            android:label="@string/title_activity_main_activity2" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
                <data android:scheme="http" android:host="www.baidu.com" android:mimeType="text/html"></data>
            </intent-filter>
        </activity>

这里写图片描述
查看Activity的存储

这里写图片描述
这里写图片描述

Activity的启动模式:



activityA
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="activity-A"
        android:id="@+id/textView" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="activity-A"

        android:onClick="startA"

        android:layout_alignParentTop="true"
        android:layout_alignStart="@+id/textView"
        android:layout_marginTop="69dp" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="activity-B"
        android:id="@+id/button3"
        android:layout_below="@+id/button2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="94dp"

        android:onClick="startB"
        />


ActivityB:
 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activty-B"
        android:id="@+id/button4"
        android:layout_below="@+id/textView2"
        android:layout_alignParentStart="true"
        android:layout_marginTop="126dp"

        android:onClick="startA"

        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="activity-b"
        android:id="@+id/button5"
        android:layout_below="@+id/button4"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="132dp"

        android:onClick="startB"

        />



ActivityA类:
    public  void  startA(View v){

        Intent intent = new Intent(this,MainActivity22ActivityA.class);

        startActivity(intent);


    }

    public void startB(View v){

        Intent intent = new Intent(this,MainActivity23ActivityB.class);

        startActivity(intent);
    }

ActivityB类:
    public  void  startA(View v){

        Intent intent = new Intent(this,MainActivity22ActivityA.class);

        startActivity(intent);


    }

    public void startB(View v){

        Intent intent = new Intent(this,MainActivity23ActivityB.class);

        startActivity(intent);
    }

清单配置文件:
     <activity
            android:name=".MainActivity23ActivityB"
            android:label="@string/title_activity_main_activity23_activity_b"
            android:launchMode="standard" 
            //标准模式,默认的模式,每次启动会新创建一个新的activity
            >
        </activity>

//每按一次返回键,则activity最上层就出栈了
这里写图片描述

和standard模式类似
singleTop:当单击按钮,打开相应的activity时,会在当前任务栈中,判断栈顶是否为当前的Activity,如果是,就直接使用,如果不是,再创建 新的Activity放入栈顶

<activity
            android:name=".MainActivity23ActivityB"
            android:label="@string/title_activity_main_activity23_activity_b"
            android:launchMode="singleTop"
            >

切换从左往右,则表示退的意思

singleTask:在当前任务栈中,判断栈里是否存在activity,如果不存在,创建一个新的activity入栈,如果存在,会把该activity之上的所有activity清除出栈,显示当前的activity
  <activity
            android:name=".MainActivity23ActivityB"
            android:label="@string/title_activity_main_activity23_activity_b"
            android:launchMode="singleTask"
            >
singleInstance:新创建一个任务栈,放入新创建的activtiy,该任务栈只允许存一个activity实例。(比如浏览器,只允许有一个实例),如果已存在,那么会该切换到该任务栈。
      <activity
            android:name=".MainActivity23ActivityB"
            android:label="@string/title_activity_main_activity23_activity_b"
            android:launchMode="singleInstance"
            >
        </activity>
//决定activity应该怎么启动
    public  void flagClick(View v){
        Intent intent = new Intent(this,MainActivity23Activity5.class);

        //设置activity启动模式
        //Intent.FLAG_ACTIVITY_NEW_TASK : 在新的任务栈中启动Activity
        //Intent.FLAG_ACTIVITY_CLEAR_TOP: 相当于singTop
        //Intent.FLAG_ACTIVITY_CLEAR_TASK: 相当于singTask
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(intent);
    }

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

    //打开网页
    public void borsePageClick(View v) {
        Uri data = Uri.parse("http://ww.baidu.com");
        String action = Intent.ACTION_VIEW;
        Intent intent = new Intent(action, data);
        startActivity(intent);
    }


    //打开拨号面板
    public void callPhoneDialClick(View v) {
        Uri data = Uri.parse("tel:123123");
        String action = Intent.ACTION_DIAL;

        Intent inten = new Intent(action, data);

        startActivity(inten);

    }


    //打电话
    public void callPhoneClick(View v) {
        Uri data = Uri.parse("tel:123123");
        String action = Intent.ACTION_CALL;
        Intent inten = new Intent(action, data);
        startActivity(inten);
    }


    //打开发短信的面板
    public void smsDialClick(View v) {
        Intent intent = new Intent();
        String action = Intent.ACTION_VIEW;
        intent.setAction(action);

        intent.putExtra("sms_body", "你好啊");
        intent.setType("vnd.android-dir/mms-sms");

        startActivity(intent);
    }


    //发短信,带填写号码
    public void smsSendClick(View v) {
        Uri data = Uri.parse("smsto:123456");
        String action = Intent.ACTION_SENDTO;
        Intent intent = new Intent(action,data);
        intent.putExtra("sms_body","看到短信了吗");
        startActivity(intent);
    }


    //打开播放器
    public void playMusicClick(View v){
        Uri data = Uri.parse("file:///sdcard/Music/xpg.map3");
        String action = Intent.ACTION_VIEW;
        Intent intent = new Intent();
        intent.setAction(action);
        intent.setDataAndType(data,"audio/mp3");
        startActivity(intent);
    }


    //卸载apk程序
    public void uninstallClick(View v){
        Uri data = Uri.parse("package:comp.coding");//包,就是主清单中的包名

        String action = Intent.ACTION_DELETE;

        Intent intent = new Intent(action,data);

        startActivity(intent);
    }


    //安装apk
    public void installClick(View v){
        Uri data = Uri.fromFile(new File("/sdcard/Download/hello.apk"));

        String action = Intent.ACTION_VIEW;

        Intent intent = new Intent(action);

        intent.setDataAndType(data,"application/vnd.android.package-archive");

        startActivity(intent);
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值