android开发中遇到的一些问题

记录android开发中遇到的一些问题

  1. activity发生异常程序重启是怎样的机制?比如程序有3层activity,当第3层的activity发生异常后app会重启到上两层也就是第1层activity,以此类推,第4层activity发生异常会重启到第2层activity;第1、2层activity发生异常app不会重启。(注:activity都是继承与AppCompatActivity,如果第1层activity含有多个fragment,当第3层activity发生异常后如果第1层activity没有做任何处理fragment会错乱重叠,这是因为AppCompatActivity继承与FragmentActivity,而FragmentActivity的onCreate(Bundle savedInstanceState)和onSaveInstanceState(Bundle outState)方法记录一些fragment的信息,因此可以用重写onSaveInstanceState方法并且方法中不错任何处理(注掉super.onSaveInstanceState)可以暂时解决这类问题,但是也损失了其他的重要信息)网上还有一种解决方法:使用UncaughtExceotionHandler捕获异常然后使程序完全退出,这样重启时就像正常启动一个app。这里只记载了问题的表象和解决方法,至于是怎样的重启机制还需要继续探索(要官方的或者是源代码的)。
  2. 同一个activity中控件的id不能重复,注意一种情况,一个activity中嵌套多个fragment此时这些fragment中的控件也不能重复。

猜你喜欢

转载自blog.csdn.net/forever_love007/article/details/79193098