安卓中的四大组件_Activity
来源:互联网 发布:淘宝店如何做起来 编辑:程序博客网 时间:2024/06/15 05:06
定义类继承Activity.
在AndroidManifest.xml文件中声明Activity信息.
<activity android:name="com.ycy.activitydemo.SecondActivity" ></activity>
在类中实现onCreate方法, 去设置布局
多个页面之间的跳转
显式跳转, 在可以引用到目标类的字节码文件的情况下使用. 一般用于在自己程序的内部. 显示跳转不可以跳转到其他程序的页面中.
隐式跳转, 可以在当前程序跳转到另一个程序的页面. 而且不需要引用那个类. 前提条件:必须知道另一个程序的页面的动作和信息.
另一个程序的页面在清单文件中给Activity添加一个动作 <intent-filter> <action android:name="com.ycy.second" /> //随便指定
<category android:name="android.intent.category.DEFAULT" />// 指定传递的数据是以: money开头<data android:scheme="money"/> // 指定传递过去的类型, 用于区分当前是什么操作.<data android:mimeType="com.ycy/mbx" />
</intent-filter>
打开浏览器页面
/*<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" /> <data android:scheme="https" /> <data android:scheme="about" /> <data android:scheme="javascript" /></intent-filter>*/Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");intent.addCategory("android.intent.category.BROWSABLE");Uri uri = Uri.parse("http://www.ycy.com");intent.setData(uri);startActivity(intent);
打开系统短信发送的页面
/*<intent-filter> <action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.SENDTO" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="sms" /> <data android:scheme="smsto" /></intent-filter>*/Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");intent.addCategory("android.intent.category.BROWSABLE");Uri uri = Uri.parse("sms:5556");intent.setData(uri);// 使用intent传递数据intent.putExtra("sms_body", "今晚7天假日酒店旁边的肯德基不见不散!!!");startActivity(intent);
Intent传递数据.
- 可传递类型: 八大基本类型和数组, ArrayList, Bundle数据捆, 序列化接口(javabean)
人品计算器
Activity之间回传数据
使用startActivityForResult方法开启新的页面
在被开启的新的页面里, 调用setResult方法设置回传的数据. 设置完后不会立刻传递到前一个页面, 而是等待新的页面关闭后, 才回传.
回传给开启Activity的onActivityResult方法.
Activity生命周期
startActivity开启一个Activity时, 生命周期的过程是: onCreate -> onStart(可见, 但不可交互) -> onResume(可见, 可交互)
点击back键关闭一个Activity时, 生命周期的过程是: onPause(部分可见, 不可交互) -> onStop(完全不可见) -> onDestory(销毁了)
当开启一个新的Activity(以对话框形式), 新的activity把后面的activity给盖住一部分时, 此时,先前的activity的生命周期执行的方法是: onPause(部分可见, 不可交互)
当把新开启的Activity(以对话框形式)给关闭时, 此时,先前的activity的生命周期执行的方法是: onResume(可见, 可交互)
当开启一个新的activity把后面的activity完全盖住时, 此时,先前的activity的生命周期的方法执行顺序: onPause -> onStop(完全不可见)
当把新开启的activity(完全盖住)给关闭时, 此时,先前的activity的生命周期的方法执行顺序是: onRestart -> onStart -> onResume(可见, 可交互)
实际工作中使用的方法
- onResume 可见, 可交互. 把动态刷新的操作启动.
onPause 部分可见, 不可交互. 把动态刷新的一些操作, 给暂停了.
onCreate 初始化一些大量的数据.
- onDestory 把数据给释放掉, 节省内存.
横竖屏切换时, 生命周期, 默认情况:会把activity销毁再创建.
不让Activity销毁在创建:在清单文件中的activity节点中加入属性
4.0以下版本 android:configChanges="orientation|keyboardHidden"
4.0以上版本 android:configChanges="orientation|screenSize"
兼容所有版本 android:configChanges="orientation|keyboardHidden|screenSize"
指定Activity以对话框的形式显示, 在清单文件中,activity节点追加以下主题
android:theme="@android:style/Theme.Dialog"
任务栈, 用来提升用户体验的.
- 程序打开时就创建了一个任务栈, 用于存储当前程序的activity.
- 所有的activity属于一个任务栈.
- 一个任务栈包含了一个activity的集合, 去有序的选择哪一个activity和用户进行交互
- 只有在任务栈栈顶的activity才可以跟用户进行交互.
- 任务栈可以移动到后台, 并且保留了每一个activity的状态. 并且有序的给用户列出它们的任务, 而且还不丢失它们的状态信息.
退出程序: 把所有的任务栈中所有的activity清除出栈, 然后任务栈销毁.
问题:
- 用户体验差, 需要点击多次返回才可以把程序退出了.
- 数据冗余, 重复数据太多, 会导致内存溢出的问题(OOM)
Activity的启动模式, 在activity节点里指定launchMode的属性.
standard 标准模式(activity的默认模式), 导致上面的问题出现.
singleTop 单一顶部模式: 如果一个activity的实例已经存在当前任务栈的栈顶, 系统会发送一个Intent给那个实例的onNewIntent方法. 应用场景: 防止别的程序恶意打开我们的页面.
singleTask 单一任务栈模式: 如果activity的实例已经存在任务栈中, 系统就不会创建一个新的实例, 而是调用那个实例的onNewIntent方法, 并且把那个已经存在的activity 实例以上所有的activity给清除出栈, 把自己变成栈顶的效果. 应用场景: 商品列表 -> 商品详情 -> 图片详情 -> 大图查看 想从大图查看立刻回到商品列表, 并且把后面开启的三个页面关闭时.
singleInstance 单一实例模式: 系统会创建一个新的任务栈把activity的实例放在新的任务栈的栈顶(栈底), 其他的activity页面不会在这个任务栈中创建实例. 如果activity的实例已经存在, 系统会调用那个实例的onNewIntent方法. 应用场景: 在整个系统中只需要初始化一次的界面.
- 安卓中的四大组件_Activity
- android四大组件_Activity
- Android四大基本组件_Activity
- 安卓中的四大组件_BroadcastReceiver
- 安卓中的四大组件_Service
- 安卓中的四大组件_ContentProvider
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- 安卓四大组件
- Android_03--四大组件_Activity+BroadcastReceiver+service+ContentProvider
- 7_四大组件之一_Activity学习
- 安卓四大组件简述
- C#的画图
- 【中山大学】【东校区】【无线路由】【wr703n】【openwrt】电脑客户端的iptv网络电视在无线路由下不能打开的解决方法
- 浏览器是如何工作的系列:解析和DOM树的构建
- 关于SAP Router连接不稳定的改良
- 用ANTLR3实现规则解析----2-grammar概览
- 安卓中的四大组件_Activity
- zen cart 修改admin 位置
- 【Windows7系统下XP模式六大缺陷的解决方法】
- poj 1635 Subway tree systems
- 图片压缩
- WebGL自学课程(16):WebGlobe实现的基本算法原理
- hibernate4以后SessionFactory对像的生成
- WPF做的简单Clock
- vs中快捷注释代码