android activity代码,Android开发学习—— activity(示例代码)

1. Activity的理解:

1). 活动: 四大应用组件之一

2). 作用: 提供能让用户操作并与之交互的界面

3). 组件的特点:

它的类必须实现特定接口或继承特定类

需要在配置文件中配置其全类名

它的对象不是通过new来创建的, 而是系统自动创建的

它的对象具有一定的生命周期, 它的类中有对应的生命周期回调方法

4). 哪些地方用到反射技术:(Android)

a. 配置文本中配置全类名

b. 布局文件定义标签

c. 显式意图: Intent(Context context, Class c)

2. Intent的理解

1). 意图: 信使(Activity, Service, BroadcastReceiver三个组件间通信的信使)

2). 分类:

显式: 操作当前应用自己的组件

隐式: 操作其它应用自己的组件

3. Intent的使用:

1). 创建:

显式: Intent(Context context, Class activityClass)

隐式: Intent(String action) //与Activity与的action匹配

2). 携带数据

额外: putExtra(String key, Xxx value) 内部用map容器保存

有特定前缀: setData(Uri data)  //tel:123123, smsto:123123

3). 读取数据:

额外: Xxx getXxxExtra(String key)

有特定前缀: Uri getData()

4. Activity的使用:

1). 定义

a. 定义一个类 extends Activity, 并重写生命周期方法

b. 在功能清单文件中使用注册

2). 启动

a. 一般: startActivity(Intent intent)

b. 带回调启动: startActivityForResult(Intent intent, int requestCode)

重写: onActivityResult(int requestCode, int resultCode, Intent data)

3). 结束

a. 一般: finish()

b. 带结果的: setResult(int resultCode, Intent data)

5. Activity的生命周期

1). Activity界面的状态:

运行状态: 可见也可操作

暂停状态: 可见但不可操作

停止状态: 不可见,但对象存在

死亡状态: 对象不存在

2). Activity的生命周期流程:

29ec444857d4460b808903df23339b31.jpg

79ce1f6510914f5594a9633789685a21.jpg

onCreate() : 加载布局和初始化的工作

onResume() : 只有经历此方法, 才进入运行状态

onDestroy() : 在对象死亡之前, 做一些收尾或清理的工作

6. TaskStack和lauchMode

1). TaskStack

在Android中,系统用Task Stack (Back Stack)结构来存储管理启动的Activity对象

一个应用启动,系统就会为其创建一个对应的Task Stack来存储并管理该应用的Activity对象

只有最上面的任务栈的栈顶的Activity才能显示在窗口中

2). lauchMode:

standard:

标准模式,每次调用startActivity()方法就会产生一个新的实例。

singleTop:

如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例;如果不位于栈顶,会产生一个新的实例。

singleTask:

只有一个实例, 默认在当前Task中

singleInstance:

只有一个实例, 创建时会新建一个栈, 且此栈中不能有其它对象

设置监听的四种方式:

1. layout中:   android:οnclick=“方法名”

Activity中: public void 方法名(View v) {   }

2. view.setOnclickListener(new View.OnclickListener(){})

3. view.setOnclickListener(this)

4. view.setOnclickListener(onclickListener成员变量)

1). 实现一个简单功能的应用的步骤:

a. 外观: 分析界面组成, 定义布局文件

b. 行为: 编写Activity的实现

1). 在onCreate()中加载布局文件: setContentView(layoutId)

2). 调用findViewById得到需要操作的所有视图对象并保存为成员变量

3). 给视图对象设置监听器(点击/长按), 在回调方法实现响应逻辑

2). 使用隐式意图启动系统应用的界面

如何找到对应的Action字符串: 添加ActivityManager的Log日志, 利用系统应用源码找到对应的Activity的配置

3). 权限: 当调用一些系统比较重要的功能时需要声明

##内存不足

* 内存不足时,系统会优先杀死后台Activity所在的进程,都杀光了,如果内存还是不足,那么就会杀死暂停状态的Activity所在的进程,如果还是不够,有可能杀死前台进程

* 如果有多个后台进程,在选择杀死的目标时,采用最近最少使用算法(LRU)

#横竖屏的切换

>默认情况下 ,横竖屏切换, 销毁当前的activity,重新创建一个新的activity

> 快捷键ctrl+F11

* Activity在横竖屏切换时会销毁重建,目的就是为了读取新的布局文件

在一些特殊的应用程序常见下,比如游戏,不希望横竖屏切换activity被销毁重新创建

需求:禁用掉横竖屏切换的生命周期

1. 横竖屏写死

android:screenOrientation="landscape"

android:screenOrientation="portrait"

2. 让系统的环境 不再去敏感横竖屏的切换。

android:configChanges="orientation|screenSize|keyboardHidden"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值