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。

以上是 Android活动生命周期介绍 的全部内容, 来源链接: utcz.com/z/321377.html

回到顶部