Vérifier et observer le cycle de vie de l'activité [saut d'intention]

Créez un projet de test, vérifiez et observez le cycle de vie de l'activité et utilisez l'intention pour passer d'une activité à l'autre :

1. Créez le projet TestActivity ;

2. Créez SecondActivity et la mise en page correspondante ;

3. Réécrivez les méthodes d'événements du cycle de vie telles que onStart() et onResume() dans MainActivity et SecondActivity, et utilisez Log pour afficher les informations du journal ;

4. Écrivez la méthode onClick() pour cliquer sur le bouton dans MainActivity et utilisez Intent pour ouvrir SecondActivity ;

5. Exécutez le programme et observez le déclenchement de chaque méthode d'événement du cycle de vie pendant les processus de création, d'affichage, de fermeture, de commutation et autres processus de récupération d'affichage de l'activité.


0.Créer un projet

Créez simplement un projet selon vos besoins

1. Créez SecondActivity et la mise en page correspondante

Dans Android Studio, cliquez avec le bouton droit sur le répertoire du projet appet sélectionnez « Nouveau » > « Activité » > « Activité vide ».

Insérer la description de l'image ici

Nommez la nouvelle activité comme SecondActivityet choisissez lors de la création du fichier de mise en pageactivity_second.xml

Insérer la description de l'image ici

Définir laactivity_second.xml disposition dans

Voici un exemple simple contenant un TextView et un Button :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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"
    android:orientation="vertical"
    android:padding="16dp"
    android:gravity="center">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is SecondActivity"
        android:textSize="18sp"
        android:textColor="#000"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Go Back"
        android:id="@+id/backButton"/>

</LinearLayout>

obtenir un effet

Insérer la description de l'image ici

2. Remplacer les méthodes de cycle de vie

Importez TAG et définissez des balises constantes

Assurez-vous d'importer android.util.Logla classe et de définir une balise constante

    private val TAG = "SecondActivity"

Dans MainActivityet SecondActivity, remplacez les méthodes de cycle de vie qui nécessitent une observation (par exemple MainActivity, etc. ).SecondActivityonStart()onResume()

LogEt utilisez les informations du journal de sortie dans ces méthodes .

@Override
protected void onStart() {
    
    
    super.onStart();
    Log.d(TAG, "onStart() called");
}

@Override
protected void onResume() {
    
    
    super.onResume();
    Log.d(TAG, "onResume() called");
}

Copiez directement dans Android Studio et il sera automatiquement converti ! !

Insérer la description de l'image ici

code converti

    override fun onStart() {
     
     
        super.onStart()
        Log.d(TAG, "onStart() called")
    }

    override fun onResume() {
     
     
        super.onResume()
        Log.d(TAG, "onResume() called")
    }

Code d'activité principale

package com.leo.activity_1

import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.activity.ComponentActivity


class MainActivity : ComponentActivity() {
    
    
    private val TAG = "MainActivity"
    override fun onCreate(savedInstanceState: Bundle?) {
    
    
        super.onCreate(savedInstanceState)
        setContentView(R.layout.main)
    }
    override fun onStart() {
    
    
        super.onStart()
        Log.d(TAG, "onStart() called")
    }

    override fun onResume() {
    
    
        super.onResume()
        Log.d(TAG, "onResume() called")
    }
    fun openSecondActivity(view: View?) {
    
    
        val intent = Intent(this, SecondActivity::class.java)
        startActivity(intent)
    }
}

Code de deuxième activité

package com.leo.activity_1

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View

class SecondActivity : AppCompatActivity() {
    
    
    private val TAG = "SecondActivity"

    override fun onCreate(savedInstanceState: Bundle?) {
    
    
        super.onCreate(savedInstanceState)
        setContentView(R.layout.second)
    }
    override fun onStart() {
    
    
        super.onStart()
        Log.d(TAG, "onStart() called")
    }

    override fun onResume() {
    
    
        super.onResume()
        Log.d(TAG, "onResume() called")
    }
    fun goBack(view: View?) {
    
    
        val intent = Intent(this, MainActivity::class.java)
        startActivity(intent)
    }
}

3.Ouvrir la deuxième activité

Bouton Ajouter

Ajoutez un bouton activity_main.xmlet ajoutez android:onClick="openSecondActivity"des attributs au bouton, qui associeront l'événement et openSecondActivityla méthode de clic sur le bouton

S'il activity_main.xmln'existe pas, créez-le vous-même

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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"
    android:padding="16dp"
    tools:context=".MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Open Second Activity"
        android:id="@+id/openSecondButton"
        android:layout_centerInParent="true"
        android:onClick="openSecondActivity" />

</RelativeLayout>

Ajouter une méthode

Comment écrire des boutons dans MainActivity onClick():

    public void openSecondActivity(View view) {
    
    
        Intent intent = new Intent(this, SecondActivity.class);
        startActivity(intent);
    }

code ktlion

    fun openSecondActivity(view: View?) {
     
     
        val intent = Intent(this, SecondActivity::class.java)
        startActivity(intent)
    }

4. Exécutez le programme et observez les événements du cycle de vie :

  • Dans Android Studio, cliquez sur le bouton vert Exécuter pour exécuter votre application.
  • Sur l'émulateur ou l'appareil Android connecté, appuyez sur le bouton pour déclencher le saut vers SecondActivity.
  • Observez la sortie dans la fenêtre Logcat, visualisez l'appel des méthodes de cycle de vie et comprenez le processus de création, d'affichage, de fermeture et de commutation de l'activité.

Le transfert de l’image du lien externe a échoué. Le site source peut avoir un mécanisme anti-sangsue. Il est recommandé de sauvegarder l’image et de la télécharger directement.

S'il apparaît java.lang.RuntimeException: Unable to start activity ComponentInfo{com.leo.activity_1/com.leo.activity_1.SecondActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity., il y a un problème d'incompatibilité

Il faut cliquer mainifests, changer le thème en

@style/Theme.AppCompat.DayNight.DarkActionBar

Insérer la description de l'image ici

obtenir un effet
Veuillez ajouter une description de l'image

Je suppose que tu aimes

Origine blog.csdn.net/qq_22841387/article/details/133278390
conseillé
Classement