我正在测试这段代码,它显示了一个活动所处的状态
public class Activity101Activity extends Activity { String tag = "lifecycle"; /** Called when the activity is first created. */ @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentVIEw(R.layout.main); setContentVIEw(R.layout.activity_activity101); Log.d(tag , "In the onCreate() event"); } public voID onStart() { super.onStart(); Log.d(tag , "In the onStart() event"); } public voID onRestart() { super.onRestart(); Log.d(tag , "In the onRestart() event"); } public voID onResume() { super.onResume(); Log.d(tag , "In the onResume() event"); } public voID onPause() { super.onPause(); Log.d(tag , "In the onPause() event"); } public voID onStop() { super.onStop(); Log.d(tag , "In the onStop() event" ); } public voID onDestroy() { super.onDestroy(); Log.d(tag , "In the onDestroy() event"); }}
所以我看到只有当活动在屏幕上时按下后退按钮才会调用onDestroy(),否则永远不会调用它.因此,如果我在活动运行时按下主页按钮,它应该在后台运行.但是,如果我去设置 – >应用 – >跑步我无法在列表中看到它.那么这是否意味着它在后台运行?
同样,再次,此代码显示onPause()始终后跟onStop(),而onStart()后跟onResume().那么为什么它们在AndroID环境中被定义为不同的功能而没有合并?
解决方法:
一旦活动进入后台,它就处于暂停模式.所以你在运行应用程序列表中看不到它.一旦你重新启动这样的暂停应用程序,它就会从backstack进入前台并开始运行.它被保留在后台以保持其状态并从它停止的地方恢复,然后进入后台.
要了解原因,在onResume之前需要onStart,请点击以下链接.它会清楚地清除你所有的疑惑:
Difference between onStart() and onResume()
总结以上是内存溢出为你收集整理的android活动生命周期函数的基础知识全部内容,希望文章能够帮你解决android活动生命周期函数的基础知识所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)