Android 学习笔记(九):Activity的生命周期分析和常用控件的使用

一、分析Activity的生命周期变化

  1. 使用右滑手势(返回键)退出应用时,先后进入onPause(),onStop(),onDestroy()三个状态,应用被摧毁。然后进入应用时先后进入onCreate(),onStart(),onResume()三个状态。应用重新进入运行状态。
  2. 在记录的时候屏幕熄灭,先后进入onPause(),onStop(),Activity进入后台停止运行重新点亮屏后,先后进入onRestart(),onStart(),onResume()状态,Activity重新开始运行。
  3. home键退出应用时,应用先后进入onPause(),onStop()状态,应用进入后台停止运行重新进入应用,先后进入onRestart(),onStart(),onResume()状态,应用重新开始运行,与第二条记录的状态一致。
  4. home键退出后,应用先后进入onPause(),onStop()状态,应用进入后台停止运行,进入设置切换字体后进入应用,分别进入onDestroy(),onCreate(),onStart(),onResume()状态,应用继续运行。
  5. 手机进行旋转屏幕时,会先进入onPause(),onStop(),onDestroy(),然后进onCreate(),onStart(), onResume()重新开始运行。
总结:通过这次简单的测试,我更加深刻的了解了Activity的生命周期变化,前三种情况都在自己的预料之中,第四种进入destroy状态查了一下资料知道了原因。第四种:修改字体后,应用切换到前台时,系统会发送一个通知给应用,应用会通过异常的方式走onDestroy()…这几个状态来更新配置。第五种:这个动作的目的是担心Activity的布局和资源不适合横竖屏切换,重新开启应用使得程序能够自己做一个适配。

二、AndroidManifest配置theme改变UI效果

  • 通过修改<application标签中的android:theme属性为所有的Activity设置属性。
  • 通过修改<activity标签中的android:theme属性为当前的Activity设置属性。

测试过程中出现异常:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme

  • 原因:Activity继承自AppCompactActivity,所以只能使用Theme.AppCompat下的主题
    解决方法:
    1. MainActivity改为继承Activity,但是这样容易出现一些兼容性的问题。
    2. 使用Theme.AppCompat下的主题,或者自定义主题,然后继承Theme.AppCompat下的主题。

三、界面包括Button,EditText,TextView

四、输入文字,显示在TextView上

学会了给EditText添加简单的监听器,从而进行各种操作

五、点击Button弹出对话框

通过AlertDialog进行简单弹框的绘制,弹框类型有很多。

六、Button跳转到其他Activity

//直接指定要跳转的Activity,显式跳转
Intent intent = new Intent(MainActivity.this, NextActivity.class);
//给intent指定Action,然后让系统自己去选择相应的Activity
Intent intent = new Intent("Action");
//传入数据,键值对形式
intent.putxxx(a,b);
//执行跳转
startActivity(intent);

七、总结

1. 更加深刻的理解了Activity的生命周期中的各个状态,并知道了一些情形下Activity生命周期的变化。
2. 学会了怎么修改Activity的主题和简单的自定义主题,并解决了相应的bug。
3. 巩固了EditText的用法。
4. 学会了通过AlertDialog进行弹框的制作,弹框有很多种,还要利用其它时间多做练习。
5. 学会了使用Intent携带数据进行显式跳转和隐式跳转。
发布了167 篇原创文章 · 获赞 230 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_39240270/article/details/99485115