一、返回栈

    Android中使用Task任务来管理活动,一个任务就是一组存放在返回栈中的活动Activity的集合。

    系统总是将栈顶的Activity显示给用户。

二、Acitivity的四种状态

1、运行状态

    位于返回栈栈顶的活动Activity处于运行状态。

2、暂停状态

    活动Activity不在处于栈顶,但仍然可见。不可交互

3、停止状态

    活动Activity不在处于栈顶,并且不可见。系统仍然会为该活动Activity保存相应的状态和成员变量。

4、销毁状态

    活动Activity从返回栈中移除。

三、Acitivity的生命周期与相关实践

  •  

四、设置Acitivity为对话框模式

AndroidMaifest.xml文件中修改标签配置

android:theme=”@style/Theme.AppCompat.Dialog”

五、onSaveInstanceState()回调方法

该方法可以保证在Activity被回收前一定被调用,因此可以运用onSaveInstanceState()回调方法解决活动被回收时数据得不到保存的问题。

1、onSaveInstanceState()回调方法中存在一个Bundle类型参数,可以运用该参数的putString() ,putInt()等方法进行数据保存。

2、在Activity中的onCreate()方法中存在一个Bundle savedInstanceState参数,一般情况下为null,但如果Acitivity在回收前运用onSaveInstanceState()回调方法保存了数据,则该参数会携带之前保存的所有数据。

六、Bundle与Intent绑定

Intent可以与Bundle一起绑定进行数据传输。

七、Acitivity的四种启动模式

    可通过AndroidMaifest.xml文件中修改标签配置android:launchMode属性改变启动模式。

    1、stardard(默认)

    2、singleTop

    3、singleTask

    4、singleInstance

八、Acitivity使用实践技巧

1、如何根据当前界面判断是哪个Acitivity

   1)新建BaseActivity类(不用在AndroidMaifest.xml中注册)继承自AppCompatActivity,并重写onCreate()方法。

   2)onCreate()方法中加入       

 Log.d(“BaseActivity”,getClass().getSimpleName());

   3)让其他Activity继承自BaseActivity成为所有Activity的父类。

2、从任意Acitivity退出程序

    运用专门一个集合类对所有活动进行管理:

     1)新建ActivityCollector类作为活动管理器编写addActivity()  removeActivity()  finishAll()等方法。

     2)在BaseActivity类中的onCreate()方法中调用ActivityCollector类的addActivity()方法,表明将正在创建的活动添加到活动管理器中。

        并在BaseActivity类中的onDestroy()方法中调用ActivityCollector类的removeActivity()方法,表明将一个马上要销毁的活动从活动管理器中移除。

Android中杀掉进程:

android.os.Process.killProcess(android.os.Process.myPid());

3、更简洁的启动Acitivity编写规范

    把启动Activity的逻辑封装到一个方法中,在待启动的Activity中添加一个public static void actionStart(Context context,String data1,String data2)方法完成Intent的构建,数据的传递与活动的启动。

更多相关文章

  1. 从一道面试题开始说起 枚举、动态代理的原理
  2. Android开发之旅:环境搭建及HelloWorld (AVD无法启动,出现Starting
  3. Android(安卓)面试题(有详细答案)
  4. Android(安卓)Handler消息处理机制详解
  5. Android(安卓)屏幕适配的几种方法
  6. 编写高效 Android代码
  7. Android无缝切换主题,动态换肤
  8. Android(安卓)属性动画代码分析(基于ObjectAnimator)
  9. 腾讯Android社招面试源码相关11题+原理详解

随机推荐

  1. 如何配置adb
  2. AudioPolicyService 和 AudioPolicyManag
  3. android 修改文件名称
  4. Android(安卓)不得不知 之 Parcelable
  5. Android Studio 快捷键
  6. The RK3066/RK30SDK Android(安卓)4.2 au
  7. Android(安卓)约束布局(ConstraintLayout)
  8. android 周报 - 2019/10/6-Issue #382
  9. android 图片处理工具类,Bitmap转换String
  10. android 项目中设置背景图片