Activity(活动)生命周期--项目测试
一、新建一个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.
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is Dialog activity"
/>
四、NormalActivity和Dialog中的代码我们保持默认就可以。这两个活动一个是普通的活动,一个是对话框的活动。为什么代码相同活动却不相同呢?在哪里有体现出将活动设置成对话框的呢?我们是需要在AndroidManifest.xml文件中进行设置的。
<activityandroid:name=".NormalActivity"/> //普通活动
<activityandroid:name=".Dialog"
android:theme="@android:style/Theme.Dialog"></activity> //对话框式活动
这里是两个活动的注册代码,但是Dialog的代码有些不同,我给它使用了一个android:theme属性,这是用于给当前活动指定主题的,Android系统内置有很多主题可以选择,当然我们也可以定制自己的主题。这里让它使用了对话框式的主题
五、修改activity_activitylifetset.xml,重新定制主活动的布局,修改里面的代码:
<Button
android:id="@+id/start_normal_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Start NormalActivity"/>
<Button
android:id="@+id/start_dialog_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Start DialogActivity"
android:layout_below="@+id/start_normal_activity"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
添加了2个button,一个启动NormalActivity一个启动DialogActivity
六、最后修改Activitylifetest中的代码:
package com.example.activitylifetest;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
publicclassActivitylifetestextendsAppCompatActivity{
publicstaticfinalString TAG="Activitylifetest";
@Override
protectedvoid onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activitylifetest);
Button startNormalActivity=(Button) findViewById(R.id.start_normal_activity);
Button startDialogActivity=(Button) findViewById(R.id.start_dialog_activity);
startNormalActivity.setOnClickListener(newView.OnClickListener(){
@Override
publicvoid onClick(View v){
Intent intent=newIntent(Activitylifetest.this,NormalActivity.class);
startActivity(intent);
}
});
startDialogActivity.setOnClickListener(newView.OnClickListener(){
@Override
publicvoid onClick(View v){
Intent intent=newIntent(Activitylifetest.this,Dialog.class);
startActivity(intent);
}
});
}
@Override
protectedvoid onStart(){
super.onStart();
Log.d(TAG,"onStart");
}
@Override
protectedvoid onResume(){
super.onStart();
Log.d(TAG,"onResume");
}
@Override
protectedvoid onPause(){
super.onStart();
Log.d(TAG,"onPause");
}
@Override
protectedvoid onStop(){
super.onStart();
Log.d(TAG,"onStop");
}
//@Override
protected void onDestory(){
super.onStart();
Log.d(TAG,"onDestory");
}
//@Override
protected void onReStart(){
super.onStart();
Log.d(TAG,"onReStart");
}
}
在onCreate()方法中,我们分别为2个按钮注册了点击事件。然后在Activity的7个回调方法打印了一句话,这样就可以通过观察日志的方式来更直观的理解活动的生命周期
可能有些没文字没注意,具体命名请以截图为准
Activity(活动)生命周期--项目测试的更多相关文章
- Activity(活动)生命周期(3)--活动的生存期
Activity类中定义了7中回调方法,覆盖了活动生命周期的每一个环节. 回调方法: 1.onCreate() 这个方法会在活动第一次被创建的时候调用.我们应该在这个方法中完成活动的初始化操作,比如: ...
- Activity(活动)生命周期(2)--活动状态
每个活动在其生命周期中最多会有4种状态 一.运行状态 当一个活动位于返回栈的栈顶的时候,这时活动就处于运行状态.系统一般不会回收,因为这会带来非常差的用户体验 二.暂停状态 当一个活动不处于栈顶状态的 ...
- Activity(活动)生命周期(1)--返回栈
Android是使用任务(task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈(Back stack).栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的 ...
- Android学习之基础知识四-Activity活动5讲(Activity的生命周期)
一.返回栈 1.Android是通过任务(Task)来管理活动,一个任务就是一个返回栈内所有活动的集合. 2.返回栈是一个后进先出的数据结构,每启动一个新的活动,该活动就会覆盖原来的活动,位于栈顶位置 ...
- 屏幕旋转时 Activity 的生命周期 —— 测试与结论
关于 Android 手机横竖屏切换时 Activity 的生命周期问题,网上有很多相似的文章,大多数都是说明在竖屏切换横屏时 Activity 会重启一次,而在横屏切换竖屏时 Activity 会重 ...
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...
- Activity 关于生命周期一些问题的实践验证
Activity 关于生命周期一些问题的实践验证 本文内容 1. 如何验证问题 2. 正常情况下的生命周期 3. 由活动 A 启动活动 B 时,活动 A 的 onpause() 和 B 的 onRes ...
- Android开发之Activity的生命周期以及加载模式
本篇博客就来好好的搞一下Activity的生命周期,如果搞过iOS的小伙伴的话,Activity的生命周期和iOS中ViewController的生命周期非常类似.生命周期,并不难理解.一个人的生命周 ...
- Android开发艺术探索(一)——Activity的生命周期和启动模式
Activity的生命周期和启动模式 生命周期有? 1.典型情况下的生命周期—>指有用户参与的情况下,Activity所经过的生命周期改变 2.异常情况下的生命周期—>指Activity被 ...
随机推荐
- URI设计原则
以下是与 REST API 相关的重要术语: 资源(Resource) 是一个对象或对某物的表示.它有一些相关联的数据,并有一组方法进行操作. 例如:动物,学校和员工是资源.这些资源都有着删除,添加, ...
- 【shell】shell中各种括号的作用()、(())、[]、[[]]、{}
一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有 ...
- 通过or注入py脚本
代码思路 1.主要还是参考了别人的代码,确实自己写的和别人写的出路很大,主要归咎还是自己代码能力待提高吧. 2.将功能集合成一个函数,然后通过*args这个小技巧去调用.函数的参数不是argv的值,但 ...
- peewee外键性能问题
# 转载自:https://www.cnblogs.com/miaojiyao/articles/5217757.html 下面讨论一下用peewee的些许提高性能的方法. 避免N+1查询 N+1查询 ...
- 工具===代替cmd的conemu设置
conemu设置 Win+Alt+P进入设置界面,字体设置: 隐藏右上角菜单和窗口标题. (Ctrl + ~ 隐藏/显示terminal) 设置背景图片 避免误操作,关闭/新建确认 设置win+w默认 ...
- python基础===flask使用整理(转)
flask 使用的一些整理 资源 Flask 文档|英文| expore flask| 快速教材| flask-admin| Flask-DebugToolbar| Flask-Login| Flas ...
- C基础 内存统一入口
引言 - malloc 引述 C标准中堆上内存入口就只有 malloc, calloc, realloc . 内存回收口是 free. 常见的一种写法是 struct person * per = ...
- kivy安装
>>> os.system('pip install kivy')Collecting kivy Downloading Kivy-1.9.1-cp27-none-win_amd64 ...
- HDU 3669 Cross the Wall(斜率DP+预处理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3669 题目大意:有n(n<=50000)个矩形,每个矩形都有高和宽,你可以在墙上最多挖k个洞使得 ...
- LeetCode解题报告—— Unique Binary Search Trees & Binary Tree Level Order Traversal & Binary Tree Zigzag Level Order Traversal
1. Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) that ...