当前位置: 首页 > 编程笔记 >

Android活动生命周期介绍

勾通
2023-03-14
本文向大家介绍Android活动生命周期介绍,包括了Android活动生命周期介绍的使用技巧和注意事项,需要的朋友参考一下

示例

假定具有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。你能帮我把它们放在正确的地方吗。而且,即使应用程序最小化,跟踪也应该继续。我有以下代码。 }