一、新建一个Activitylifetest项目,允许Android Studio帮我们自动创建活动和布局,并且勾选Luancher Activity来将创建的活动设置为主活动。

可以参考: http://www.cnblogs.com/aqyl/p/6605116.html
项目与主活动创建完成

二、分别创建2个子活动NormalActivity和DialogActivity

右击com.example.activitylifetest包–》New–》Activity–》Empty Activity,新建Normal Activity,布局名为normal_layout。然后使用同样方法创建DialogActivity

三、修改normal_layout.xml和dialog_layout.xml文件。以normal_layout举例,现象一个是normal,一个是dialog.

  1. <TextView
  2. android:layout_width="match_parent"
  3. android:layout_height="wrap_content"
  4. android:text="This is Dialog activity"
  5. />

四、NormalActivity和Dialog中的代码我们保持默认就可以。这两个活动一个是普通的活动,一个是对话框的活动。为什么代码相同活动却不相同呢?在哪里有体现出将活动设置成对话框的呢?我们是需要在AndroidManifest.xml文件中进行设置的。

  1. <activityandroid:name=".NormalActivity"/> //普通活动
  2. <activityandroid:name=".Dialog"
  3. android:theme="@android:style/Theme.Dialog"></activity> //对话框式活动

这里是两个活动的注册代码,但是Dialog的代码有些不同,我给它使用了一个android:theme属性,这是用于给当前活动指定主题的,Android系统内置有很多主题可以选择,当然我们也可以定制自己的主题。这里让它使用了对话框式的主题

五、修改activity_activitylifetset.xml,重新定制主活动的布局,修改里面的代码:

  1. <Button
  2. android:id="@+id/start_normal_activity"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:text="Start NormalActivity"/>
  6. <Button
  7. android:id="@+id/start_dialog_activity"
  8. android:layout_width="match_parent"
  9. android:layout_height="wrap_content"
  10. android:text="Start DialogActivity"
  11. android:layout_below="@+id/start_normal_activity"
  12. android:layout_alignParentLeft="true"
  13. android:layout_alignParentStart="true"/>

添加了2个button,一个启动NormalActivity一个启动DialogActivity

六、最后修改Activitylifetest中的代码:

  1. package com.example.activitylifetest;
  2. import android.content.Intent;
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.util.Log;
  6. import android.view.View;
  7. import android.widget.Button;
  8. publicclassActivitylifetestextendsAppCompatActivity{
  9. publicstaticfinalString TAG="Activitylifetest";
  10. @Override
  11. protectedvoid onCreate(Bundle savedInstanceState){
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_activitylifetest);
  14. Button startNormalActivity=(Button) findViewById(R.id.start_normal_activity);
  15. Button startDialogActivity=(Button) findViewById(R.id.start_dialog_activity);
  16. startNormalActivity.setOnClickListener(newView.OnClickListener(){
  17. @Override
  18. publicvoid onClick(View v){
  19. Intent intent=newIntent(Activitylifetest.this,NormalActivity.class);
  20. startActivity(intent);
  21. }
  22. });
  23. startDialogActivity.setOnClickListener(newView.OnClickListener(){
  24. @Override
  25. publicvoid onClick(View v){
  26. Intent intent=newIntent(Activitylifetest.this,Dialog.class);
  27. startActivity(intent);
  28. }
  29. });
  30. }
  31. @Override
  32. protectedvoid onStart(){
  33. super.onStart();
  34. Log.d(TAG,"onStart");
  35. }
  36. @Override
  37. protectedvoid onResume(){
  38. super.onStart();
  39. Log.d(TAG,"onResume");
  40. }
  41. @Override
  42. protectedvoid onPause(){
  43. super.onStart();
  44. Log.d(TAG,"onPause");
  45. }
  46. @Override
  47. protectedvoid onStop(){
  48. super.onStart();
  49. Log.d(TAG,"onStop");
  50. }
  51. //@Override
  52. protected void onDestory(){
  53. super.onStart();
  54. Log.d(TAG,"onDestory");
  55. }
  56. //@Override
  57. protected void onReStart(){
  58. super.onStart();
  59. Log.d(TAG,"onReStart");
  60. }
  61. }

在onCreate()方法中,我们分别为2个按钮注册了点击事件。然后在Activity的7个回调方法打印了一句话,这样就可以通过观察日志的方式来更直观的理解活动的生命周期

可能有些没文字没注意,具体命名请以截图为准

Activity(活动)生命周期--项目测试的更多相关文章

  1. Activity(活动)生命周期(3)--活动的生存期

    Activity类中定义了7中回调方法,覆盖了活动生命周期的每一个环节. 回调方法: 1.onCreate() 这个方法会在活动第一次被创建的时候调用.我们应该在这个方法中完成活动的初始化操作,比如: ...

  2. Activity(活动)生命周期(2)--活动状态

    每个活动在其生命周期中最多会有4种状态 一.运行状态 当一个活动位于返回栈的栈顶的时候,这时活动就处于运行状态.系统一般不会回收,因为这会带来非常差的用户体验 二.暂停状态 当一个活动不处于栈顶状态的 ...

  3. Activity(活动)生命周期(1)--返回栈

    Android是使用任务(task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈(Back stack).栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的 ...

  4. Android学习之基础知识四-Activity活动5讲(Activity的生命周期)

    一.返回栈 1.Android是通过任务(Task)来管理活动,一个任务就是一个返回栈内所有活动的集合. 2.返回栈是一个后进先出的数据结构,每启动一个新的活动,该活动就会覆盖原来的活动,位于栈顶位置 ...

  5. 屏幕旋转时 Activity 的生命周期 —— 测试与结论

    关于 Android 手机横竖屏切换时 Activity 的生命周期问题,网上有很多相似的文章,大多数都是说明在竖屏切换横屏时 Activity 会重启一次,而在横屏切换竖屏时 Activity 会重 ...

  6. Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式

    Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...

  7. Activity 关于生命周期一些问题的实践验证

    Activity 关于生命周期一些问题的实践验证 本文内容 1. 如何验证问题 2. 正常情况下的生命周期 3. 由活动 A 启动活动 B 时,活动 A 的 onpause() 和 B 的 onRes ...

  8. Android开发之Activity的生命周期以及加载模式

    本篇博客就来好好的搞一下Activity的生命周期,如果搞过iOS的小伙伴的话,Activity的生命周期和iOS中ViewController的生命周期非常类似.生命周期,并不难理解.一个人的生命周 ...

  9. Android开发艺术探索(一)——Activity的生命周期和启动模式

    Activity的生命周期和启动模式 生命周期有? 1.典型情况下的生命周期—>指有用户参与的情况下,Activity所经过的生命周期改变 2.异常情况下的生命周期—>指Activity被 ...

随机推荐

  1. 模型验证与模型集成(Ensemble)

    作者:吴晓军 原文:https://zhuanlan.zhihu.com/p/27424282 模型验证(Validation) 在Test Data的标签未知的情况下,我们需要自己构造测试数据来验证 ...

  2. 【bzoj4695】最假女选手

    zcy的励志故事.jpg 傻逼zcy突然想立一个flag,写一个segment-tree-beats的题娱乐一下 于是他就想起了这道题. 他打算今晚写完 然后光是写他就写的头昏脑涨,还犯了询问写反这种 ...

  3. 方便大家学习的Node.js教程(一):理解Node.js

    理解Node.js 为了理解Node.js是如何工作的,首先你需要理解一些使得Javascript适用于服务器端开发的关键特性.Javascript是一门简单而又灵活的语言,这种灵活性让它能够经受住时 ...

  4. C语言面试题总结(一)

    以前的记录都在电子笔记里,倒不如拿出来,有错的地方和大家交流. 1.指针操作: 如下例,设a内存地址为OX00 int a =10; int *p = &a; *a 编译错误 a表示10 *p ...

  5. python_day3学习笔记

    set集合 python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并.交.差.对称差等. sets 支持 x in set. len(set).和 for x ...

  6. 利用getBoundingClientRect()来实现div容器滚动固定

    ele.getBoundingClientRect()的方法是可以获得一个元素在整个视图窗口的位置 可以return的值有width,height,top,left,x,y,right,bottom ...

  7. beego学习笔记(1)

    公司准备开发一个针对塔吊行业的APP. 后台采用微服务,docker容器部署. 准备采用go进行微服务的开发. 采用beego进行restful API的开发. 第一步,访问beego的官方网站: h ...

  8. NOI2014 魔法森林 day1t2 SPFA

    这道题做法还是很多的,至少有人用最优性剪枝当场A掉了.我只有50分的暴力分(写丑了),SB我不会LCT,先写一下SPFA的神思路做法(说白了还是我SB),LCT以后定补.ORZ想出来的人(hq大神). ...

  9. 使用vue2.0 vue-router vuex 模拟ios7操作

    其实你也可以,甚至做得更好... 首先看一下效果:用vue2.0实现SPA:模拟ios7操作 与 通讯录实现 github地址是:https://github.com/QRL909109/ios7 如 ...

  10. 基于node的前端页面实时更新。呦吼~

    学习了gulp,webpack后越发觉得前端开发万分的有趣,首当其冲的就是解决了狂按f5的尴尬. 当我们按下ctrl+s保存后页面自动更新了,我就觉得我f5键在隐隐的发笑. 1.node_npm_li ...