Andorid生命周期实践
来源:互联网 发布:语音输入翻译软件 编辑:程序博客网 时间:2024/06/08 02:51
还记得在网上关于生命周期面试题吗,是这样说的
2. 横竖屏切换时候 activity 的生命周期
1. 不设置 Activity 的 android:configChanges 时 , 切屏会重新调用各个生命周期 , 切横屏时会执行一次 , 切竖屏时会执行两次 .
2. 设置 Activity 的 android:configChanges="orientation" 时 , 切屏还是会重新调用各个生命周期 , 切横、竖屏时只会执行一次 .
3. 设置 Activity 的 android:configChanges="orientation|keyboardHidden" 时 , 切屏不会重新调用各个生命周期 , 只会执行onConfigurationChanged 方法 .
package com.jc.myandroidlifecycle;import android.app.Activity;import android.os.Bundle;import android.util.Log;public class MainActivity extends Activity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i(TAG, "onCreate"); } @Override protected void onStart() { super.onStart(); Log.i(TAG, "onStart"); } @Override protected void onResume() { super.onResume(); Log.i(TAG, "onResume"); } @Override protected void onStop() { super.onStop(); Log.i(TAG, "onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.i(TAG, "onDestroy"); } @Override protected void onRestart() { super.onRestart(); Log.i(TAG, "onRestart"); } @Override protected void onPause() { super.onPause(); Log.i(TAG, "onPause"); }}
最后两个onPause跟onStop也是自动黑屏的状态,我在清单文件里按照上面说的那样设置了onfigchanges的属性,发现都一样。。。是我没理解上面的话还是怎么的
#########################################下面是跟第二个页面跳转相关的生命周期###############################
package com.jc.myandroidlifecycle;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;public class SecondActivity extends AppCompatActivity { private static final String TAG = "lifecycle"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Log.i(TAG, "2onCreate"); } @Override protected void onStart() { super.onStart(); Log.i(TAG, "2onStart"); } @Override protected void onResume() { super.onResume(); Log.i(TAG, "2onResume"); } @Override protected void onStop() { super.onStop(); Log.i(TAG, "2onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.i(TAG, "2onDestroy"); } @Override protected void onRestart() { super.onRestart(); Log.i(TAG, "2onRestart"); } @Override protected void onPause() { super.onPause(); Log.i(TAG, "2onPause"); }}为了区分,第一个与第二个,我设置了同样的TAG,为LifeCycle,并给第二个页面的生命周期加了个222222....
#########################################下面把第二个页面设置成半透明那种的###############################
<activity android:name=".SecondActivity" android:theme="@android:style/Theme.Dialog"></activity>
0 0
- Andorid生命周期实践
- Andorid Activity生命周期
- andorid 实践2015-8-28
- Andorid学习【基础篇】Android应用程序生命周期
- Activity生命周期实践
- Activity生命周期实践
- 服务生命周期最佳实践简介
- 从实践谈iOS生命周期
- Android30--Andorid之很详细的Toolbar开发实践
- iOS最佳实践:视图生命周期该干什么
- iOS最佳实践:视图生命周期该干什么
- Android:Activity和Fragment生命周期实践
- Android:Activity和Fragment生命周期实践
- android Activity和Fragment生命周期实践
- Activity生命周期详解及最佳实践
- Activity生命周期实践记录(一)
- Day2 Activity生命周期/启动模式/最佳实践
- Activity生命周期详解及最佳实践
- 对Web设计和开发人员有用的15个Chrome插件
- XML解析之DOM解析_四层结合数据库
- 剑指offer|数组中的逆序对
- iOS:导航条滚动透明度随着tableView的滚动而变化
- C语言哈希表 uthash
- Andorid生命周期实践
- Linux 系统启动时自动挂载文件
- Python logging模块学习
- Linux内核驱动基础(9)gpio的使用
- [译]Core Animation 3D介绍(第2部分)
- private,static,final和域对于重写覆盖方法的区别。
- Android 退出应用
- Android 组件动态设置宽高
- 关于使用Xcode自带的单元测试UnitTest的介绍