android82 启动Actvity和Activity的生命周期
2024-09-01 10:23:30
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,由用户选择启动哪一个
最新文章
- iOS -- 轮播图
- Beta阶段第二次Scrum Meeting
- SQL Server Management Studio 已停止工作 异常错误
- 防止sql注入
- Spring实现文件上传
- Gray Code
- mac svn 更新到新版本1.8
- Android——GridView(网格视图)相关知识总结贴
- UIScrollview自动布局,UIScrollviewAutolayoutDemo
- 无责任Windows Azure SDK .NET开发入门篇一[Windows Azure开发前准备工作]
- CY7C68013A的一点总结
- PIE使用阴影后的背景透明方法
- 使用Angular CLI进行单元测试和E2E测试
- 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
- E - Just a Hook HDU - 1698 线段树区间修改区间和模版题
- exec与match方法的区别
- 使用soap遇到的缓存问题
- BZOJ1201 [HNOI2005]数三角形 大力出奇迹
- 从零开始学Kotlin-操作符(3)
- python3 IEDriver抓取时报数据
热门文章
- but has failed to stop it. This is very likely to create a memory leak(c3p0在Spring管理中,连接未关闭导致的内存溢出)
- JNI/NDK开发指南(一)—— JNI开发流程及HelloWorld
- vs2015 Xamarin.Android安装
- android中handler中 obtainmessge与New message区别
- leetcode面试准备: Substring with Concatenation of All Words
- Learning WCF Chapter2 Service Contracts
- CentOS6.5 x86_64 配置Broadcom 43XX系列 无线网卡驱动
- bzoj1822
- 【转】iOS开发:开发证书知识点总结
- 理解I/O Completion Port