android:activity的生命周期(跳转到其他activity)
一,官方文档:
https://developer.android.google.cn/guide/components/activities/activity-lifecycle?hl=zh-cn
官方对生命周期的说明图

二,代码:
package com.example.okdemo1;
import android.app.ActivityOptions;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.example.imagelib.ImageListActivity;
import com.example.okdemo1.activity.PreferenceActivity;
import com.example.okdemo1.model.Goods1;
import com.example.okdemo1.model.Goods2;
import com.example.okdemo1.model.Goods3;
import com.example.okdemo1.model.MessageModel;
import com.example.okdemo1.model.UserListEntity;
import com.example.okdemo1.model.UserListItemEntity;
import com.google.gson.Gson;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.io.IOException;
import java.util.List;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "Activity生命周期";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
//写日志create事件
Log.d(TAG, getClass().getSimpleName() + " - onCreate");
//给按钮增加点击事件
Button myButton = findViewById(R.id.apibutton);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 处理点击事件
Intent intent = new Intent(MainActivity.this, PreferenceActivity.class);
// 启动目标Activity
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this).toBundle());
System.out.println("点击完成");
}
});
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, getClass().getSimpleName() + " - onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, getClass().getSimpleName() + " - onResume");
}
@Override
protected void onPause() {
Log.d(TAG, getClass().getSimpleName() + " - onPause");
super.onPause();
}
@Override
protected void onStop() {
Log.d(TAG, getClass().getSimpleName() + " - onStop");
super.onStop();
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, getClass().getSimpleName() + " - onRestart");
}
@Override
protected void onDestroy() {
Log.d(TAG, getClass().getSimpleName() + " - onDestroy");
super.onDestroy();
}
}
-
创建状态(Created):
- onCreate():Activity 第一次被创建时调用。用于初始化 Activity,如设置布局文件、初始化变量等。
-
启动状态(Started):
- onStart():Activity 变为可见时调用。此时 Activity 还未获取焦点,不能与用户交互。
-
恢复状态(Resumed):
- onResume():Activity 进入前台,用户可以与之交互时调用。这是接收用户输入的最佳时机。
-
暂停状态(Paused):
- onPause():Activity 失去焦点但仍然可见时调用。例如,弹出一个对话框或启动一个半透明的 Activity 时。
-
停止状态(Stopped):
- onStop():Activity 完全不可见时调用。此时 Activity 仍在内存中保留其状态和数据,但不再对用户可见。
-
重启状态(Restarted):
- onRestart():Activity 从停止状态重新启动时调用。在调用 onStart() 和 onResume() 之前调用。
-
销毁状态(Destroyed):
- onDestroy():Activity 被销毁时调用。在此方法中应释放所有资源,避免内存泄漏。
总结:
onResume()和onPause()是相对的,分别是指能交互和不能交互
onStart()和onStop()是相对的,分别是指可见和不可见
onCreate()和onDestroy()是相对的,分别是指创建和销毁
三,测试效果:
1,启动app:

2,跳转到其他activity:

3,从其他activity返回:

4,退出:

浙公网安备 33010602011771号