第四章:Activity 的生命周期,用图示表示出来

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

}

(第四章:Activity 的生命周期,用图示表示出来)

+-------------------+ +-------------------+ +-------------------+
| onCreate | --> | onStart | --> | onResume |
+-------------------+ +-------------------+ +-------------------+
↑ | |
| ↓ ↓
+-------------------+ +-------------------+ +-------------------+
| onRestart | <-- | onStop | <-- | onPause |
+-------------------+ +-------------------+ +-------------------+
↑ |
| ↓
+-------------------+ +-------------------+
| onDestroy | <-- | onStop |
+-------------------+ +-------------------+

完整的生命周期了!

onResume (Activity 进入前台并可与用户交互=工作了。)
81页,29行代码。
2025-04-09 08:49:29.811 4698-4698/? D/MainActivityLifecycle: 生命周期:onCreate() - 活动创建
2025-04-09 08:49:29.812 4698-4698/? D/MainActivityLifecycle: 生命周期:onStart() - 活动即将可见
2025-04-09 08:49:29.815 4698-4698/? D/MainActivityLifecycle: 生命周期:onResume() - 活动可见且可交互

看到helloworld,这三个就出来了。

2025-04-09 08:50:47.442 4698-4698/? D/MainActivityLifecycle: 生命周期:onPause() - 活动即将失去焦点
2025-04-09 08:50:47.534 4698-4722/? D/EGL_emulation: eglMakeCurrent: 0xa46851e0: ver 2 0 (tinfo 0xa46835a0)
2025-04-09 08:50:47.542 4698-4698/? D/MainActivityLifecycle: 生命周期:onStop() - 活动不可见

2025-04-09 08:51:15.997 4698-4698/? D/MainActivityLifecycle: 生命周期:onRestart() - 活动重新启动
2025-04-09 08:51:15.997 4698-4698/? D/MainActivityLifecycle: 生命周期:onStart() - 活动即将可见
2025-04-09 08:51:15.997 4698-4698/? D/MainActivityLifecycle: 生命周期:onResume() - 活动可见且可交互
2025-04-09 08:51:16.035 4698-4722/? D/EGL_emulation: eglMakeCurrent: 0xa46851e0: ver 2 0 (tinfo 0xa46835a0)

2025-04-09 08:55:31.273 5149-5149/com.example.myapplication D/MainActivityLifecycle: 生命周期:onDestroy() - 活动销毁
(销毁)

2025-04-09 08:49:29.564 4698-4698/? I/art: Late-enabling -Xcheck:jni
2025-04-09 08:49:29.564 4698-4698/? W/art: Unexpected CPU variant for X86 using defaults: x86
2025-04-09 08:49:29.577 4698-4703/? I/art: Debugger is no longer active
2025-04-09 08:49:29.577 4698-4703/? I/art: Starting a blocking GC Instrumentation
2025-04-09 08:49:29.658 4698-4698/? W/System: ClassLoader referenced unknown path: /data/app/com.example.myapplication-1/lib/x86
2025-04-09 08:49:29.742 4698-4698/? W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
2025-04-09 08:49:29.761 4698-4698/? I/art: Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
2025-04-09 08:49:29.761 4698-4698/? I/art: at void androidx.core.view.ViewCompat.setBackground(android.view.View, android.graphics.drawable.Drawable) (ViewCompat.java:2341)
2025-04-09 08:49:29.761 4698-4698/? I/art: at void androidx.appcompat.widget.ActionBarContainer.(android.content.Context, android.util.AttributeSet) (ActionBarContainer.java:62)
2025-04-09 08:49:29.761 4698-4698/? I/art: at java.lang.Object java.lang.reflect.Constructor.newInstance0!(java.lang.Object[]) (Constructor.java:-2)
2025-04-09 08:49:29.761 4698-4698/? I/art: at java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[]) (Constructor.java:430)
2025-04-09 08:49:29.761 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.createView(java.lang.String, java.lang.String, android.util.AttributeSet) (LayoutInflater.java:645)
2025-04-09 08:49:29.761 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:787)
2025-04-09 08:49:29.761 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet) (LayoutInflater.java:727)
2025-04-09 08:49:29.761 4698-4698/? I/art: at void android.view.LayoutInflater.rInflate(org.xmlpull.v1.XmlPullParser, android.view.View, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:858)
2025-04-09 08:49:29.761 4698-4698/? I/art: at void android.view.LayoutInflater.rInflateChildren(org.xmlpull.v1.XmlPullParser, android.view.View, android.util.AttributeSet, boolean) (LayoutInflater.java:821)
2025-04-09 08:49:29.761 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser, android.view.ViewGroup, boolean) (LayoutInflater.java:518)
2025-04-09 08:49:29.761 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup, boolean) (LayoutInflater.java:426)
2025-04-09 08:49:29.761 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup) (LayoutInflater.java:377)
2025-04-09 08:49:29.761 4698-4698/? I/art: at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:607)
2025-04-09 08:49:29.761 4698-4698/? I/art: at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
2025-04-09 08:49:29.761 4698-4698/? I/art: at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void com.example.myapplication.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:14)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6662)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1118)
2025-04-09 08:49:29.762 4698-4698/? I/art: at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2599)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2707)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1460)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.os.Looper.loop() (Looper.java:154)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077)
2025-04-09 08:49:29.762 4698-4698/? I/art: at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:866)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:756)
2025-04-09 08:49:29.762 4698-4698/? I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/com.example.myapplication-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.myapplication-1/lib/x86, /system/lib, /vendor/lib]]
2025-04-09 08:49:29.762 4698-4698/? I/art: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
2025-04-09 08:49:29.762 4698-4698/? I/art: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
2025-04-09 08:49:29.762 4698-4698/? I/art: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void androidx.core.view.ViewCompat.setBackground(android.view.View, android.graphics.drawable.Drawable) (ViewCompat.java:2341)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void androidx.appcompat.widget.ActionBarContainer.(android.content.Context, android.util.AttributeSet) (ActionBarContainer.java:62)
2025-04-09 08:49:29.762 4698-4698/? I/art: at java.lang.Object java.lang.reflect.Constructor.newInstance0!(java.lang.Object[]) (Constructor.java:-2)
2025-04-09 08:49:29.762 4698-4698/? I/art: at java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[]) (Constructor.java:430)
2025-04-09 08:49:29.762 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.createView(java.lang.String, java.lang.String, android.util.AttributeSet) (LayoutInflater.java:645)
2025-04-09 08:49:29.762 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:787)
2025-04-09 08:49:29.762 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet) (LayoutInflater.java:727)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.view.LayoutInflater.rInflate(org.xmlpull.v1.XmlPullParser, android.view.View, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:858)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.view.LayoutInflater.rInflateChildren(org.xmlpull.v1.XmlPullParser, android.view.View, android.util.AttributeSet, boolean) (LayoutInflater.java:821)
2025-04-09 08:49:29.762 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser, android.view.ViewGroup, boolean) (LayoutInflater.java:518)
2025-04-09 08:49:29.762 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup, boolean) (LayoutInflater.java:426)
2025-04-09 08:49:29.762 4698-4698/? I/art: at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup) (LayoutInflater.java:377)
2025-04-09 08:49:29.762 4698-4698/? I/art: at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:607)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void com.example.myapplication.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:14)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6662)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1118)
2025-04-09 08:49:29.762 4698-4698/? I/art: at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2599)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2707)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1460)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.os.Looper.loop() (Looper.java:154)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077)
2025-04-09 08:49:29.762 4698-4698/? I/art: at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:866)
2025-04-09 08:49:29.762 4698-4698/? I/art: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:756)

2025-04-09 08:49:30.000 4698-4722/? I/OpenGLRenderer: Initialized EGL, version 1.4
2025-04-09 08:49:30.000 4698-4722/? D/OpenGLRenderer: Swap behavior 1
2025-04-09 08:49:30.000 4698-4722/? W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
2025-04-09 08:49:30.000 4698-4722/? D/OpenGLRenderer: Swap behavior 0
2025-04-09 08:49:30.035 4698-4722/? D/EGL_emulation: eglCreateContext: 0xa46851e0: maj 2 min 0 rcv 2
2025-04-09 08:49:30.039 4698-4722/? D/EGL_emulation: eglMakeCurrent: 0xa46851e0: ver 2 0 (tinfo 0xa46835a0)
2025-04-09 08:49:30.047 4698-4722/? D/EGL_emulation: eglMakeCurrent: 0xa46851e0: ver 2 0 (tinfo 0xa46835a0)
2025-04-09 08:49:31.600 4698-4703/? I/art: Ignoring second debugger -- accepting and dropping

理论的第二道例题。

姓名:王晓明
成绩:98
是否及格:及格

第一个页面:Activity (上面的数据传递给第二个页面:secondActivity,然后第二页面接收到(姓名:王晓明
成绩:98
是否及格:及格),再反馈给第一页面:我收到了。

(课本82页,至88页,无非就是讲上面的功能。)

tools:context=.SecondActivity
<TextV
Unresolved class 'SecondActivity' 更多.... (Ctrl+F1)

(出现这种情况是说,你没有注册。)84页,这个叫清单文件。

(增加了一个页面,就必须注册。)

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

(对应85页的内容,显式的Intent,就相当于一个快递员,打包好包裹了。)
intent.putExtra("name", "王晓明");
intent.putExtra("score", 98);
intent.putExtra("pass", "及格");

  intent(putExtra在打包)87页的内容
  
   String name = intent.getStringExtra("name");
    int score = intent.getIntExtra("score", 0);
    String pass = intent.getStringExtra("pass");
	
	87页的内容 最后的页面代码
	
	 setResult(RESULT_OK, intent);88页

源代码下载:https://wwvn.lanzoul.com/ihrLL2t1vcgh

posted @ 2025-04-09 09:21  大胡子编程  阅读(17)  评论(0)    收藏  举报