我想了解Android Activity的生命周期.为此,我创建了Activity,其中我覆盖了所有生命周期方法(onCreate,onStart,onRestart,onResume,onPause,onStop,onDestroy):
public class SecondActivity extends AppCompatActivity { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_second); Log.d("ActivityTutorial", "onCreate"); } @OverrIDe protected voID onStart() { super.onStart(); Log.d("ActivityTutorial", "onStart"); } @OverrIDe protected voID onRestart() { super.onRestart(); Log.d("ActivityTutorial", "onRestart"); } @OverrIDe protected voID onResume() { super.onResume(); Log.d("ActivityTutorial", "onResume"); } @OverrIDe protected voID onPause() { super.onPause(); Log.d("ActivityTutorial", "onPause"); } @OverrIDe protected voID onStop() { super.onStop(); Log.d("ActivityTutorial", "onStop"); } @OverrIDe protected voID onDestroy() { super.onDestroy(); Log.d("ActivityTutorial", "onDestroy"); }}
我在使用Log.d(…)记录的行上放置了断点.然后我试着调试. onCreate方法没问题 – 它是在创建活动时调用的.
奇怪的情况是开始onStart方法.根据AndroID documentation:“onStart()在活动变得对用户可见时调用.”但是当我调试时,它涉及到onStart方法,但是这个Activity上的button,还不可见.
在调用onStart()方法之后,我认为应该在onResume()上看到它.但按钮不可见.
只有在onResume方法之后,按钮才可见.
所以我的问题是onStart和onResume方法有什么问题?也许我做的事情不是以它应该做的方式做的?
解决方法:
不.onResume()方法使Activity可见.正如您所说,感谢文档:“onStart()在活动变得对用户可见时调用”.
如果你仔细阅读:“onResume()当活动开始与用户交互时调用.”
更新:
总结Keep in mind that onResume is not the best indicator that your
activity is visible to the user; a system window such as the keyguard
may be in front. Use onWindowFocusChanged(boolean) to kNow for certain
that your activity is visible to the user (for example, to resume a
game).
以上是内存溢出为你收集整理的Android – onStart方法有什么问题?全部内容,希望文章能够帮你解决Android – onStart方法有什么问题?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)