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,由用户选择启动哪一个

android82 启动Actvity和Activity的生命周期的更多相关文章

  1. 十分钟掌握Activity的生命周期与启动模式

    1. Activity的生命周期 正常情况下的Activity生命周期如下图所示(来自Android Developer): 当资源相关的系统配置变更时(比如设备屏幕方向改变,键盘可见性变化),会导致 ...

  2. 无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)

    1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCrea ...

  3. Android开发艺术探索(一)——Activity的生命周期和启动模式

    Activity的生命周期和启动模式 生命周期有? 1.典型情况下的生命周期—>指有用户参与的情况下,Activity所经过的生命周期改变 2.异常情况下的生命周期—>指Activity被 ...

  4. 《Android开发艺术探索》读书笔记 (1) 第1章 Activity的生命周期和启动模式

    第1章 Activity的生命周期和启动模式 1.1 Activity生命周期全面分析 1.1.1 典型情况下生命周期分析(1)一般情况下,当当前Activity从不可见重新变为可见状态时,onRes ...

  5. Activity的生命周期和启动模式

    Activity的生命周期分析 典型情况下的生命周期.是指在用户参与的情况下,Activity所经过的生命周期的改变. 异常情况下的生命周期.是指Activity被系统回收或者由于当前设备的Confi ...

  6. Activity的生命周期& 启动模式

    1.Activity的生命周期 生命周期这个事情,是android工程师最基础的知识,所以今天要讲的是一些不一样的东西. 1.1 OnStart,OnResume,OnPause,OnStop 他们的 ...

  7. Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式

    Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...

  8. 一、Activity的生命周期和启动模式

    1.Activity的生命周期 1.1.典型情况下的生命周期 在有用户参与的情况下,Activity所经过的生命周期的改变. Activity会经历如下生命周期: onCreate-onRestart ...

  9. 第一章:Activity的生命周期和启动模式

    Activity是Android中四大组件之首,所以需要重视,尤其是启动方式,在AndroidManifest.xml中的注册信息 (一)Activity的生命周期 1.1.1 正常情况下的生命周期 ...

随机推荐

  1. Unreal Engine4 蓝图讲解

    UE4开发群:344602753 Unread Engine4的界面概况: UE4的效果可以说是比较好的,从整体架构上来说,和Unity3d的逻辑架构不太 一样,发现UE4不好上手,但是从理论上考虑, ...

  2. cisco上的RIP V2加上MD5认证配置测试成功

    R1: Router#show run Building configuration... Current configuration : bytes ! version 12.3 service t ...

  3. java实现栈的数据结构

    栈是一种数据结构,只能从一端进行存储和访问.常规操作有压入栈和弹出栈. 特性:先进先出,LIFO 以下是用ArrayList为内核实现一个栈的数据结构 import java.util.ArrayLi ...

  4. php composer

    对于现代语言而言,包管理器基本上是标配.Java有Maven,Python有pip,Ruby有gem,Nodejs有npm.PHP的则是PEAR,不过PEAR坑不少: 依赖处理容易出问题 配置非常复杂 ...

  5. 转载:遍历Map的四种方法

    http://www.cnblogs.com/kristain/articles/2033566.html 遍历Map的四种方法 public static void main(String[] ar ...

  6. Javascript自动换图片

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. C#简单多线程使用(同步和优先权)

    题目: 麦当劳有两个做汉堡的厨师(工号:11,12)和三个销售人员(工号:21,22,23). 厨师生产汉堡,并负责将做好的汉堡放入货架,货架台大小有限,最多放6个汉堡,11和12不能同时往货架台上放 ...

  8. POJ_1631_Bridging_Signals_(动态规划,LIS)

    描述 http://poj.org/problem?id=1631 铁路左右相连,要求去掉一些边,使得剩下的边不交叉,求剩余边数的最大值. Bridging signals Time Limit: 1 ...

  9. Apache Commons IO 2.3 几点用法

    //直接将IO流转成字符串 InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try { ...

  10. HDOJ --- 2577

    How to Type Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...