Android系统知识全览(2)---四大组件之Activity

2018-08-17  本文已影响10人  善笃有余劫

什么是Activity

是一种可以包含用户界面的组件,主要用于与用户进行交互。

创建和使用

创建class继承AppCompatActivity即可,随后在配置文件AndroidManifest.xml注册上即可。

其他的细节不再赘述,都是基本操作。包括创建布局文件,注册为启动Activity等等。

使用Intent进行Activity跳转

如果要从一个Activity跳转到另一个Activity,需要使用Intent。

Intent是什么

Intent是Android程序中各组件之间交换的一种方式,用于执行当前组件的动作意图,同时可以携带数据。根据指明的动作是否具体,可分为隐式intent和显式Intent。

组件Content Provider本身就是一种通信机制,不需要通过Intent

Intent使用方式

极其简单,实现Activity跳转
显式

Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);

隐式

Intent intent = new Intent();
//设置动作(实际action属性就是一个字符串标记而已)
intent.setAction("com.example.smyh006intent01.MY_ACTION"); //方法:Intent android.content.Intent.setAction(String action)
startActivity(intent);

值得注意的是,隐士启动可能匹配多个组件,会列举出来供用户选择。
除了action还有category,同时匹配才可生效。

Activity生命周期

Activity使用任务栈管理,称为返回栈。后进先出,后面的叠加在上面。

Activity的四个状态:

运行状态,处于栈顶
暂停状态,不处于栈顶但可见
停止状态,不处于栈顶不可见
销毁状态,已经从栈内移除

Activity生命周期

七个回调方法覆盖Activity生命周期:

经典图片

image

1.onCreate()
这个方法在每一个Activity类都会有,当我们新建一个Activity类时,一定会重写父类的onCreate方法,onCreate方法会在Activity第一次被创建时调用。我们应该在这个方法中完成Activity的初始化操作,比如说加载布局,初始化布局控件,绑定按钮事件等。
2.onStart()
这个方法在Activity由不可见变为可见时调用。
3.onResume()
这个方法在Activity准备好喝用户交互的时候调用。此时的Activity一定位于返回栈的栈顶,并且处于运行状态。
4.onPause()
这个方法在系统准备去启动或者恢复另一个Activity的时候调用。
5.onStop()
这个方法在Activity完全不可见的时候调用。它和onPause()方法的主要区别在于,如果启动的新Activity是一个对话框式的activity,那么,onPause()方法会得到执行,而onStop()方法并不会执行。
6.onDestory()
这个方法在Activity被销毁之前调用,之后Activity的状态将变为销毁状态。
7.onRestart()
这个方法在Activity由停止状态变为运行状态之前调用,也就是Activity被重新启动了。

三种生存期:

完整生存期: onCreate--->onDestory 这两组对应是否存在
可见生存期: onStart-->onStop 这两组是对应是否可见
前台生存期: onResume-->onPause 这两组是对应是否可交互

一些场景下的生命周期

进程的优先级以及被回收的处理

Activity的启动模式

相关面试题

1.Intent携带数据有上限吗?如果超过上限如何处理。

有,1MB之内(1024KB),intent传输容量在1MB之内。
超过上限:
方法一:将需要传递的数据写在临时文件或者数据库中,再跳转到另外一个组件的时候再去读取这些数据信息,这种处理方式会由于读写文件较为耗时导致程序运行效率较低;
方法二:将需要传递的数据信息封装在一个静态的类中(注意当前组件和要跳转到的组件必须属于同一个进程,因为进程之间才能够共享数据),在当前组件中为类设置内容,然后再跳转到的组件中去取,这种处理方式效率很高,但是会破坏程序的独立性。

上一篇 下一篇

猜你喜欢

热点阅读