[android学习1]横竖屏切换的机理

原创 2012年03月28日 11:25:03

因为最近遇到了几个奇怪的bug,所以下定决心把横竖屏切换的机制搞清楚,现在和大家分享下:



首先是phonewindowmananger里会注册windoworientationlistener,当sensor有事件上报后,会调用onOrientationChanged,继续调用WMS里的接口setRotation。
在setRotation里会对config进行判断,如果发生了变化就会通知AMS,sendNewConfiguration。
AMS会调用WMS的接口computeNewConfiguration来对新的config进行判断,并在updateConfigurationLocked调用activitythread的scheduleConfigurationChanged,给APPTHREAD发CONFIGURATION_CHANGED;调用ensureActivityConfigurationLocked,紧接着在activitystack里调用app.thread.scheduleActivityConfigurationChanged来给APPTHREAD发送ACTIVITY_CONFIGURATION_CHANGED消息。
到这里,我们的activitythread就会收到并处理这2个关键的消息,遍历当前的callstack,调用各个activity的onconfigrationchange。

调用图如下:
具体怎么切横屏的这个涉及到layout我还没搞清楚。。。

Android屏幕横竖屏切换和生命周期管理的详细总结

Android屏幕横竖屏切换和生命周期管理的详细总结       一般的我们去切换屏幕方向都是不希望Activity被重新创建,这时就需要对一些属性进行设置,或者使用代码设置。        今天想...
  • wenzhi20102321
  • wenzhi20102321
  • 2017年04月01日 09:46
  • 2940

Android手机切换横竖屏时Activity的生命周期

今天看到一个关于Android手机切换横竖屏时Activity的生命周期的问题,在论坛先查阅了相关的文章,然后自己也测试了一下,发现结果有些不同。我测试的模拟器是Android4.0,自己的手机是An...
  • Captian_JHL
  • Captian_JHL
  • 2015年10月16日 23:37
  • 1075

Android横竖屏切换总结

Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简...
  • jiangxinyu
  • jiangxinyu
  • 2013年02月21日 21:43
  • 86341

Android横竖屏切换和灭屏亮屏时Activity的生命周期探究(1)

研究这个问题的初衷在于项目中碰到了一个问题:横屏的时候灭屏再亮屏,亮屏的时候用户可以清晰的看到先启动竖屏(过程1)再切换到横屏的过程,由于灭屏的时候onSaveInstanceState()保存的时横...
  • u012604322
  • u012604322
  • 2014年04月19日 09:10
  • 3598

Android 调用前摄像头拍照存储,根据打开时横竖屏切换preview

  • 2014年06月04日 17:15
  • 628KB
  • 下载

android横竖屏切换

  • 2016年12月30日 21:13
  • 82KB
  • 下载

Android横竖屏切换

  • 2015年03月04日 14:28
  • 16KB
  • 下载

android横竖屏切换

  • 2015年12月30日 16:29
  • 8.39MB
  • 下载

android横竖屏切换代码

  • 2014年05月07日 15:21
  • 50KB
  • 下载

android 二维码扫描 支持横竖屏切换Demo

  • 2017年09月30日 16:39
  • 2.54MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[android学习1]横竖屏切换的机理
举报原因:
原因补充:

(最多只允许输入30个字)