1.2Android 学习+进度之二

来源:互联网 发布:淘宝客推爆款方法 编辑:程序博客网 时间:2024/05/17 08:10
ACtivity。四大组件之一。一个程序可包含多个。

直接通过new来创建Activity,可以进行自动注册在清单里,你要是人工写,然后继承类,就得以自己改清单文件,容易忘记(新版本不知道有没有这个优化)。

Activity的什么周期。

1.启动状态(短暂,进入下一个状态)

2.运行状态,这个状态处于屏幕最前端,有焦点的(所谓的界面切换就是切换这个是吧?)

3.暂停状态,出现个对话框,后面的应该就算暂停吧,失去焦点,无响应。

4.停止状态,完全不可见,进入后台了呗,内存不足,这种就被处理掉了

5.销毁装填,被清理出内存

盗个图:

对应7个方法

1.onCreate()

2.onStart()在可见时调用

3.onResume()获取焦点开始于用户交互

4.onParuse()被其他Activity或者锁屏时调用

5.onStop()不可见时

6.onDestroy()销毁时

7.onRestart()停止状态再次启动

第一次运行程序时,首先调用1,其次2,再3;退出,先4,再5,最后6。

PS:书上说横竖屏切换的时候,先回销毁Activity然后重建Activity,不需要得单独设置

各种Activity覆盖,新建再覆盖,因此有个叫做任务栈的东西。恩,能理解

Activity有4种启动方式。

1.standard模式,默认。每启动一个Activity都会在栈顶产生一个新的实例。假如A在栈顶,还要产生个A,此时整个模式会再新建一个A

2singleTop模式,2是解决1的问题,判断要产生的是否在栈顶,加入在,直接复用。。那肯定有,假如在栈列表,从中间挖到上面去。。

3singleTask模式,和我想的不太一样,的确是只有单独一个,但是假如在栈中,则必须把他之前的全部弹出,然后让这个显示(这么暴力。。)

4singleInstance模式,效果上感觉和我之前说的差不多,但是把一个东西动栈中挖出来,然后还不影响其他的,实在有点难。这里的处理方式是,在这个模式下的Activity,新建的时候干两个事,假如存在,则用,没有,则新建一个任务栈来管理Activity。(用新建来实现,想用就用)来电显示采用这个方法。

Activity之间跳转

intent,分为显示和隐式

显式:

Intent intent = new Intent(this,Activity02.class);

startActivity(intent);

隐式:

Intent intent=new Intent();

intent.setAction("cn.itcast.START_ACTIVITY");

startActivity(intent);
显然的,显式可以启动自己的Activity,隐式还能启动其他程序的Activity。

数据传递,采用putExtra();和GetStringExtra()。传递个下一个打开的Activity。

数据回传,也常见,销毁时数据反馈,startActivityForResult()。

这个项目得用到,在第一个界面点击需要聊天的对象的时候,切换到第二个界面,需要吧聊天的对象,传递到下一个Activity。

原创粉丝点击