zoukankan      html  css  js  c++  java
  • android82 启动Actvity和Activity的生命周期

    package com.itheima.jump;
    
    import android.net.Uri;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.View;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
    
        /**
         * 跳转至打电话activity
         * 跳转至其他应用的activity
         * 隐式跳转:通过指定action和data
         * @param v
         */
        public void click1(View v){
            Intent intent = new Intent();
            //隐式意图
            intent.setAction(Intent.ACTION_CALL);
            intent.setData(Uri.parse("tel:110"));  tel是安卓默认的打电话Activity的前缀
            //跳转
            startActivity(intent);
        }
        
        /**
         * 跳转至secondActivity
         * 在本应用中跳转
         * @param v
         */
        public void click2(View v){
            Intent intent = new Intent();
            //cls:直接指定目标Activity的类名
            //显示意图
            intent.setClass(this, SecondActivity.class);//字节码
            startActivity(intent);
        }
        
        /**
         * 显示跳转至拨号器
         */
        public void click3(View v){
            Intent intent = new Intent();
            //指定目标Activity的包名和类名,如果Activity所在的包跟应用包名(com.android.dialer)同名,那么可以省略不写
            intent.setClassName("com.android.dialer", ".DialtactsActivity");
            startActivity(intent);
        }
        /**
         * 隐式跳转至拨号器
         */
        public void click4(View v){
            Intent intent = new Intent();
            //隐式设置拨号器的动作
            intent.setAction(Intent.ACTION_DIAL);
            startActivity(intent);
        }
        
        /**
         * 隐式跳转至secondActivity
         * @param v
         */
        public void click5(View v){
            Intent intent = new Intent();
            intent.setAction("com.itheima.sa2");        //匹配<action android:name="com.itheima.sa2"/>
            /*
            intent.setData(Uri.parse("heima2:qwe"));    匹配android:scheme="heima2"
            intent.setType("text/username");   匹配android:mimeType="text/username"
            */
            
            intent.setDataAndType(Uri.parse("heima2:qwe123"), "text/username");
            //系统会自动添加默认的category
            intent.addCategory(Intent.CATEGORY_DEFAULT);
            startActivity(intent);
        }
        
        /**
         * 显式跳转至浏览器
         */
        public void click6(View v){
            Intent intent = new Intent();
            //com.android.browser是包名这里是安卓自带的浏览器,com.android.browser.BrowserActivity是类名
            intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
            startActivity(intent);
        }
        /**
         * 隐式跳转至浏览器,这里是隐士的启动,可以启动别的浏览器程序(例如360浏览器不是安卓默认的浏览器是跨应用调用Activity),那么这里会让你选择启动哪个浏览器。
         * @param v
         */
        public void click7(View v){
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);//没有指明调用哪个浏览器
            intent.setData(Uri.parse("http://www.baidu.com"));
            startActivity(intent);
        }
    }

     清单文件:

    <activity android:name=".SecondActivity">
                <intent-filter >
                    <action android:name="com.itheima.sa"/>
                    <action android:name="com.itheima.sa3"/>
                    <data android:scheme="heima"/>   java类里面前面也要指明data,并且前缀是heima
                    <data android:scheme="heima3"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
                
                <intent-filter >
                    <action android:name="com.itheima.sa2"/>
                    <data android:scheme="heima2" android:mimeType="text/username"/>  mimeType是数据的类型
                    <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
            </activity>

    ###显式意图和隐式意图的应用场景
    * 显式意图用于启动同一应用中的Activity
    * 隐式意图用于启动不同应用中的Activity
    * 如果系统中存在多个Activity的intent-filter同时与你的intent匹配,那么系统会显示一个对话框,列出所有匹配的Activity,由用户选择启动哪一个

  • 相关阅读:
    技术选型总结
    这些年来收集的好用的好玩的软件,强烈推荐给大家
    如何解决markdown中图片上传的问题
    01.如何把.py文件打包成为exe,重点讲解pyinstaller的用法
    Asp.net中汉字转换成为拼音
    程序员常用网址收集
    通过IP来判断所在城市
    以太坊
    分布式系统领域经典论文翻译集
    T50
  • 原文地址:https://www.cnblogs.com/yaowen/p/4943636.html
Copyright © 2011-2022 走看看