假定具有MainActivity的应用程序可以通过单击按钮来调用Next Activity。
public class MainActivity extends AppCompatActivity { private final String LOG_TAG = MainActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(LOG_TAG, "calling onCreate from MainActivity"); } @Override protected void onStart() { super.onStart(); Log.d(LOG_TAG, "calling onStart from MainActivity"); } @Override protected void onResume() { super.onResume(); Log.d(LOG_TAG, "calling onResume from MainActivity"); } @Override protected void onPause() { super.onPause(); Log.d(LOG_TAG, "calling onPause from MainActivity"); } @Override protected void onStop() { super.onStop(); Log.d(LOG_TAG, "calling onStop from MainActivity"); } @Override protected void onDestroy() { super.onDestroy(); Log.d(LOG_TAG, "calling onDestroy from MainActivity"); } @Override protected void onRestart() { super.onRestart(); Log.d(LOG_TAG, "calling onRestart from MainActivity"); } public void toNextActivity(){ Log.d(LOG_TAG, "calling Next Activity"); Intent intent = new Intent(this, NextActivity.class); startActivity(intent); } }
和
public class NextActivity extends AppCompatActivity { private final String LOG_TAG = NextActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_next); Log.d(LOG_TAG, "calling onCreate from Next Activity"); } @Override protected void onStart() { super.onStart(); Log.d(LOG_TAG, "calling onStart from Next Activity"); } @Override protected void onResume() { super.onResume(); Log.d(LOG_TAG, "calling onResume from Next Activity"); } @Override protected void onPause() { super.onPause(); Log.d(LOG_TAG, "calling onPause from Next Activity"); } @Override protected void onStop() { super.onStop(); Log.d(LOG_TAG, "calling onStop from Next Activity"); } @Override protected void onDestroy() { super.onDestroy(); Log.d(LOG_TAG, "calling onDestroy from Next Activity"); } @Override protected void onRestart() { super.onRestart(); Log.d(LOG_TAG, "calling onRestart from Next Activity"); } }
在首次创建应用程序
d / MainActivity:从主叫MainActivity的onCreate
d / MainActivity:从主叫MainActivity调用onStart
d / MainActivity:从主叫MainActivity的onResume
被称为
屏幕休眠时
08:11:03.142 D / MainActivity:从MainActivity调用onPause
08:11:03.192 D / MainActivity:从MainActivity调用onStop
。并再次当它醒来
08:11:55.922 d / MainActivity:从MainActivity调用onRestart
08:11:55.962 d / MainActivity:从MainActivity调用在onStart
11:55.962 d / MainActivity:08从MainActivity调用的onResume
被称为
情况1:当从主活动
D / MainActivity调用下一个活动:调用下一个活动
D / MainActivity:从主活动D /
NextActivity调用onPause:从下一个活动
D / NextActivity调用onCreate:从下一个活动D / NextActivity调用onStart
:从下一活动
D / MainActivity:从MainActivity调用onStop
当使用返回按钮
D / NextActivity从下一个活动返回主活动时:从下一个活动
D / MainActivity调用onPause :从MainActivity
D / MainActivity调用onRestart:从MainActivity D / MainActivity调用onStart
:从MainActivity
D / NextActivity调用onResume :从下一个活动
D / NextActivity调用onStop:从下一个活动调用onDestroy
情况2:当“活动”被部分遮盖(按“概览”按钮时)或当应用程序进入后台并且另一个应用程序完全遮盖它时
D / MainActivity:从MainActivity调用onPause
D / MainActivity:从MainActivity调用onStop
且应用返回前景准备接受用户输入,
d / MainActivity:从主叫MainActivity onRestart
d / MainActivity:从主叫MainActivity调用onStart
d / MainActivity:从主叫MainActivity的onResume
被称为
情况3:当一个活动被调用以实现隐式意图并且用户做出选择时。例如,当按下共享按钮时,用户必须从显示的应用程序列表中选择一个应用程序
D / MainActivity:从MainActivity调用onPause
活动可见,但现在不活动。当选择完成和应用处于活动状态
d / MainActivity:从MainActivity调用的onResume
被称为
案例4:
当应用程序在中被杀死时background(to free resources for another foreground app), onPause(用于蜂窝前设备)或onStop(用于蜂窝设备)将是终止该应用程序之前的最后一次调用。
每次运行应用程序时,将最多一次调用onCreate和onDestroy。但是在生命周期中可能会多次调用onPause,onStop,onRestart,onStart,onResume。
我为测试函数做了简单的应用程序,如onCreate()、onStart等。每个函数都让你有自己的日志。开始测试。 null 为什么在执行应用程序时调用onResume方法?(在a中) 为什么onPause和onStop方法一起调用?(在b中) 为什么在C中调用三个方法而不是onRestart或onrestume?(c) 为什么调用onDestroy方法?(d) 附言:对不起,英语:)
我在开始新活动时遇到了一些问题。在我的应用程序中,我设置了侦听意图的广播接收器(屏幕关闭)。当屏幕关闭时,我的应用程序应该开始新活动(当然在某些情况下。我没有制作垃圾邮件应用程序)。但有时不是。 我在清单中声明了活动“singleTop”,所以我也重写了“onNewIntent”方法。(我认为这很重要)但事情是这样的。 当手机进入睡眠状态并且满足某些条件时,屏幕上会出现两个图标(“我的活动”)。我
我试图找出当锁屏启用和禁用时,活动生命周期中的差异。 场景A(无锁屏) 应用程序正在运行 按下电源按钮可关闭显示器 按下电源按钮打开显示屏 应用程序立即恢复 场景B(锁定屏幕启用,滑动解锁) 应用程序正在运行 按下电源按钮关闭显示 点击电源按钮打开显示 刷屏解锁 应用程序恢复(但我们在显示中得到一个错误,这是我们试图找到区别的地方) 我已经打印出了这两个场景的活动生命周期,它们在这两个场景中显示出
本文向大家介绍Android Service生命周期?相关面试题,主要包含被问及Android Service生命周期?时的应答技巧和注意事项,需要的朋友参考一下 onCreate() 首次创建服务时,系统将调用此方法。如果服务已在运行,则不会调用此方法,该方法只调用一次。 onStartCommand() 当另一个组件通过调用startService()请求启动服务时,系统将调用此方法。 onD
在我的调试中,我注意到在片段上首先调用onpause/onstart/onstop/ondestroy,然后在它的活动上调用onResume,而onResume则相反--活动的onResume在它的片段之前首先调用。 为什么活动和片段之间的onpause/onstart/onstop与onResume的顺序不同?
我从这里的开发指南中读到了android活动的生命周期。现在我混淆了哪部分代码驻留在哪种方法中,比如onCreate、onStart、onResume、onRestart、onPause、onResume、onStop和OnDestroy。你能帮我把它们放在正确的地方吗。而且,即使应用程序最小化,跟踪也应该继续。我有以下代码。 }