14、activity

Activity的创建
在Android应用中,可以创建一个或多个Activity,创建步骤如下所示:

1)定义一个类继承自android.app.Activity或者其子类;
2)在res/layout目录中创建一个xml文件,用于创建Activity的布局;
3)在AndroidManifest.xml文件中注册Activity;
4)重写Activity的onCreate()方法,并在该方法中使用setContentView()
加载指定的布局文件;
3.2 Activity的启动模式
Activity的四种启动模式
Activity的启动模式有四种,分别是standard、singleTop、singleTask和singleInstance。
在AndroidManifest.xml中,可以通过标签的android:launchMode属性设置启动模式。

standard标准模式
standard是Activity默认的启动模式,在不指定Activity启动模式的情况下,所有Activity使用的都是standard模式。
在standard模式下,每当启动一个新的Activity,它就会进入任务栈,并处于栈顶的位置,对于使用standard模式的Activity,每次启动都会创建一个新的实例。

singleTop模式
singleTop启动模式与standard类似,不同的是,当启动的Activity已经位于栈顶时,则直接使用它,不再创建新的实例。

singleTask模式
当Activity的启动模式为singleTask时,每次启动该Activity时,系统首先会检查栈中是否存在该Activity的实例,如果发现已经存在则直接使用该实例,并将当前Activity之上的所有Activity出栈,如果没有发现则创建一个新的实例。
Intent
1、Intent的概念:
Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不
仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间
的交互。Intent这个英语单词的本意是“目的、意向、意图”。
Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组
件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容
选择适当的组件来响应。
2、对于向这三种组件发送intent有不同的机制:
使用Context.startActivity() 或 Activity.startActivityForResult(),传入一个intent来启动一
个activity。使用 Activity.setResult(),传入一个intent来从activity中返回结果。
将intent对象传给Context.startService()来启动一个service或者传消息给一个运行的
service。将intent对象传给 Context.bindService()来绑定一个service。 将intent对象传给 Context.sendBroadcast(),Context.sendOrderedBroadcast(),或者
Context.sendStickyBroadcast()等广播方法,则它们被传给 broadcast receiver。
3.Intent的相关属性:
Intent由以下各个组成部分:
component(组件):目的组件
action(动作):用来表现意图的行动
category(类别):用来表现动作的类别
一个包含Intent额外信息的字符串,表示哪种类型的组件来处理这个Intent。任何数量的
Category 描述都可以添加到Intent中,但是很多intent不需要category,
data(数据):表示与动作要操纵的数据
type(数据类型):对于data范例的描写一般Intent的数据类型能够根据数据本身进行判定,但
是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。
extras(扩展信息):扩展信息;Intent可以携带的额外 key-value 数据,你可以通过调用
putExtra() 方法设置数据,每一个 key对应一个 value数据。你也可以通过创建 Bundle对象来
存储所有数据,然后通过调用 putExtras() 方法来设置数据。
Flags(标志位):期望这个意图的运行模式
页面数据信息传递
1.直接发送数据
//发送端 String data = “Hello Activity02”
Intent intent = new Intent(this,Activity02.class);
//存放数据:key-value intent.putExtra(“extra_data”,data);
startActivity(intent);
//取数据端 Intent intent = getIntent();
//key String data==intent.getStringExtra(“extra_data”);
2.Bundle
Bundle bundle = new Bundle(); bundle.putString(“name”, “Linda”); Intent intent = new Intent(this,Activity02.class); intent.putExtra(bundle); startActivity(intent); Intent intent = getIntent(); Bundle bundle = intent.getExtras(); String stuName = bundle.getString(“name”);
Intent用法
调用拨号程序
发送短信或彩信
通过浏览器打开网页
发送电子邮件
显示地图与路径规划
播放多媒体
选择图片
拍照
获取并剪切图片
打开手机应用市场
安装程序
卸载程序
进入设置界面

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值