四大组件之Activity
来源:互联网 发布:一个能看网络攻击网站 编辑:程序博客网 时间:2024/05/30 23:24
Vista安卓系列——Activity
1.Activity的生命周期
这个不再做过多的阐述,贴图即可。
2.Activity的跳转
Activity的跳转需要创建Intent对象,通过设置intent对象的参数指定要跳转Activity。
Activity的跳转可分为显示和隐式两类:通过设置Activity的包名和类名实现跳转,称为显式意图跳转;通过指定动作实现跳转,称为隐式意图跳转。
显式意图跳转
适用于跳转到同一个应用下的不同Activity
Intent intent = new Intent(); intent.setClass(this, OtherActivity.class); startActivity(intent);
隐式意图跳转
隐式意图用于启动不同应用中的Activity。如果系统中存在多个Activity的intent-filter同时与你的intent匹配,那么系统会显示一个对话框,列出所有匹配的Activity,由用户选择启动哪一个。
隐式跳转到打电话
我们看到系统源码的OutgoingCallBroadcaster的Activity在清单文件里做了如下的配置:
<intent-filter> <action android:name="android.intent.action.CALL" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="tel" /> </intent-filter>
下面我们要设置与之相匹配的Intent:
Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:10086")); startActivity(intent);
- 隐式跳转到浏览器
同样, 我们看到系统源码的BrowserActivity在清单文件里做了如下的配置:
下面我们同样设置与之相匹配的Intent:
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.hao123.com")); startActivity(intent);
3.Activity的启动模式
Activity有四种启动模式,即为任务栈处理activity不同的方法
standard
遵循栈先进后出的原则。
singleTop
如果任务栈的栈顶存在这个要开启的activity,不会重新的创建activity,而是复用已经存在的activity。保证栈顶如果存在,不会重复创建。
如:当targetActivity在栈顶,当用户还要再次启动targetActivity时,栈不会有变化。
singleTask
当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,并且把这个activity上面的所有的别的activity都清空。保证整个任务栈里面只有一个实例存在。
如:任务栈由底层开始分别是MainActivity,TargetActivity。若此时再次启动MainActivity(启动模式是singleTask)则栈内只剩下了MainActivity。
singleInstance
activity会运行在自己的任务栈里面,并且这个任务栈里面只有一个实例存在。当我们启动其中一个activity时,携带这个activity的任务栈就会跑到前台。
4.Activity跳转时的数据传递
Activity启动时,可以通过Intent对象的携带数据到目标Activity
Intent intent = new Intent(this, TargetActivity.class); intent.putExtra("name", "Vista"); intent.putExtra("age", 18); startActivity(intent);
目标Activity获取Intent携带的数据
Intent intent = getIntent(); String name = intent.getStringExtra("name"); int age = intent.getIntExtra("age", 0);
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之 Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之Activity
- 四大组件之 activity
- 四大组件之Activity
- laravel5.3项目部署踩坑记录
- Mininet可视化应用
- 深入理解Android Telephony之RILD的启动
- 高级工程师要具备
- 析构函数可以是纯虚函数
- 四大组件之Activity
- C#SQL连接数据库
- 股票入门基础知识14:查看不同公司报表确定其股票涨跌率
- Scrapy学习笔记
- 学习笔记——同步、通信与死锁(1)
- 资料备忘
- 什么是web?
- 系统dos命令
- 字符串的排列