Un premier aperçu de l'activité


Introduction à cette section :

Dans la section précédente, nous avons découvert quelques concepts de base de l'activité, qu'est-ce que l'activité, le cycle de vie de l'activité, comment démarrer une activité, etc. Dans cette section, continuons à en apprendre davantage sur l'activité. Comme mentionné précédemment, une application est généralement composée de plusieurs activités. Cela implique donc la question du transfert de données entre plusieurs activités. Donc, dans cette section, continuez à en apprendre davantage sur l'utilisation de l'activité ! De plus, nous expliquerons la transmission de collections, d'objets, de tableaux et de bitmaps dans Intent. Ici, nous présenterons uniquement comment transmettre des données de base !


Transfert de données entre activités :

1.png

Exemple de code :

Rendu :

2.gif

Téléchargement du code : ActivityTest1.zip


2 .Interaction entre plusieurs activités (cette dernière est renvoyée à la précédente)

3.png

Exemple de code :

Effet Image :

4.gif

Téléchargement du code : ActivityTest2.zip


3. Sachez quelle activité est actuellement

5.png


4. Fermez toutes les activités à tout moment

6.png

Parfois, nous pouvons avoir de nombreuses activités ouvertes, et tout à coup il y a un tel besoin, qui peut être désactivé sur une certaine page. Toutes les activités et quittez le programme ! Eh bien, voici une méthode pour fermer toutes les activités, Utilisez simplement une collection de listes pour stocker toutes les activités !

Le code spécifique est le suivant :

public class ActivityCollector {
public static LinkedList<Activity> activités = new LinkedList<Activity>();
public static void addActivity(Activity activité)
{
Activities.add (activité);
}
public static void removeActivity(Activité activité)
{
activités.remove(activité);
for(Activité activité:activités)
{
if(!activity.isFinishing())
activity.finish ();
}
}
}
}



5. Comment quitter complètement l'application
Ce qui précède consiste à fermer toutes les activités, mais parfois nous pouvons vouloir supprimer l'intégralité de l'application, même les tâches en arrière-plan sont supprimées. Si vous voulez tous les tuer, vous pouvez l'utiliser avec le code suivant :

Code d'implémentation :

/** * Quitter l'application

*/
public void AppExit(Context context) {
try {
ActivityCollector.finishAll();
ActivityManageractivityMgr = (ActivityManager) context
.get SystemService(Context.ACTIVITY_SERVICE); .killBackgroundProcesses (context.getPackageName());
System.exit(0);
} catch (Exception ignorée) {} ​​
}


6. Deux façons de quitter le programme en double-cliquant :

1) Définir une variable pour identifier s'il faut quitter

// Définir une variable pour identifier s'il faut quitter Exit
private static boolean isExit = false;
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg );
isExit = false;
}
};

public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (! isExit) {
isExit = true;
Toast.makeText(getApplicationContext(), "Appuyez à nouveau pour quitter le programme",
Toast.LENGTH_SHORT).show();
/ / Utilisez le gestionnaire pour retarder l'envoi des informations sur l'état de modification
mHandler.sendEmptyMessageDelayed(0, 2000);
} else {
exit(this);
}
return false;
}
return super.onKeyDown (keyCode, event);>

2) Enregistrez le temps de clic :

//Enregistrez le temps de clic
private long exitTime = 0;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if ((System.currentTimeMillis() - exitTime) > 2000 ) {
Toast. makeText(getApplicationContext(), "Cliquez à nouveau pour quitter le programme",
Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
exit();
             >
return false;
}
return super.onKeyDown(keyCode, event);
}

7. Configurer des cinématiques pour l'activité

Les soi-disant cinématiques consistent à ajouter des animations de changement lors du passage à une autre activité, comme un fondu entrant et sortant, un zoom avant et sortir, pousser à gauche et à droite, etc. ! Bien sûr, nous n'expliquons pas l'animation en détail ici. Il y aura un chapitre spécial pour expliquer cela plus tard. Ici, nous vous apprendrons uniquement comment charger l'animation. Nous vous proposons quelques animations de transition couramment utilisées. Ajoutez simplement les fichiers d'animation pertinents au répertoire res/anim, puis choisissez l'une des méthodes suivantes. Vous pouvez réaliser l'animation de commutation d'activité !

1) Première méthode :

7.png

2) Deuxième méthode :

Configurer via le style, c'est global, c'est-à-dire , toutes les activités chargeront cette animation !

Le code d'implémentation est le suivant :

① Personnalisez le style dans style.xml :

< ;! -- Animation de saut d'activité par défaut -->
<style name="default_animation" mce_bogus="1" parent="@android:style/Animation.Activity">
<item name= " android:activityOpenEnterAnimation">@anim/default_anim_in</item>
<item name="android:activityOpenExitAnimation">@anim/anim_stay</item>
<item name="android:activityCloseEnterAnimation "

Explication : Les 4 éléments de

représentent respectivement :

Lorsque l'activité A passe à l'activité B, l'activité B entre en animation ;

Animation de sortie de l'activité A lors du passage à l'activité B ;
  • Animation d'entrée de l'activité A lorsque l'activité B revient à l'activité A
  • Animation de sortie de l'activité B lorsque l'activité B revient à l'activité A
  • ②Puis modifiez l'AppTheme :

<style name="AppTheme" mce_bogus="1" parent="@android:style/Theme .Light"> ;                                                                                                                      style>

③Enfin sous les paramètres de l'application :

<application
android:icon="@drawable/logo"
android:label="@ string/ app_name"
android:theme="@style/AppTheme" >

D'accord, les effets d'animation se règlent en un seul clic~

3) Autres

D'accord, en plus des deux méthodes ci-dessus, vous pouvez également utiliser TransitionManager pour y parvenir, mais la version requise est l'API 19 ou supérieure. Il existe également une animation de conversion de addOnPreDrawListener, qui est un peu difficile à utiliser et peut ne pas convenir aux débutants. Je n'entrerai pas dans les détails ici. Enfin, nous proposons quelques packages d'effets d'animation couramment utilisés. Sélectionnez simplement les effets spéciaux requis et ajoutez-les au projet ! Activité de transition couramment utilisée.zip


8. Limitations du transfert de données du Bundle

Lors de l'utilisation du Bundle pour transférer des données, veuillez noter que la taille du Bundle est limitée< Mo, si supérieur à cette valeur Une exception TransactionTooLargeException sera signalée ! ! !


9. Utilisez la ligne de commande pour afficher les commandes de toutes les activités en cours :

Utilisez la commande suivante, à condition que vous ayez configuré les variables d'environnement pour le SDK : activité dumpsys du shell adb


10. Comment définir l'activité en plein écran :

1) Code masquant la barre d'action

dans Activity Appelez getActionBar.hide(); dans la méthode onCreate

2) Définissez

requestWindowFeature(Window.FEATURE_NO_TITLE) via requestWindowFeature ; Ce code doit être appelé avant setContentView (), sinon une erreur sera signalée ! ! !

Remarque : Placez requestWindowFeature(Window.FEATURE_NO_TITLE); devant super.onCreate(savedInstanceState); pour masquer l'ActionBar sans signaler d'erreur.

3) Définir theme = @android:style/Theme.NoTitleBar.FullScreen

dans la balise de l'activité qui nécessite le plein écran via le thème


de AndroidManifest.xml

11. La merveilleuse utilisation de la méthode onWindowFocusChanged :

Jetons d'abord un coup d'œil à l'introduction officielle de cette méthode :

C'est-à-dire quand l'activité obtient ou perd focus, cette méthode sera rappelée ! Si nous voulons vérifier si l'activité est chargée, nous pouvons utiliser cette méthode ~ Si vous souhaitez en savoir plus, vous pouvez consulter cet article : Introduction au déclencheur onWindowFocusChanged


12 Définir une activité de style dialogue

Dans certains cas, nous pouvons avoir besoin. Définissez l'activité sur le style de dialogue. L'activité occupe généralement le plein écran. Le Dialogue occupe une partie de l'écran ! C’est aussi facile à mettre en œuvre !

Définissez directement le thème de l'activité :

android:theme="@android:style/Theme.Dialog"

Ça y est, bien sûr vous pouvez définir le titre et la petite icône !


//Définissez la petite icône dans le coin supérieur gauche
requestWindowFeature(Window.FEATURE_LEFT_ICON);
setContentView(R.layout.main);
getWindow( ).setFeatureDrawableResource( Window.FEATURE_LEFT_ICON, android.R.drawable.ic_lion_icon);
//Définir le texte :
setTitle(R.string.actdialog_title); //Défini dans le code XML : android:label="@ string/activity_dialog"

Résumé de cette section :

D'accord, dans cette section, nous avons découvert certains problèmes courants dans le développement réel de l'activité. Je pense que cela le fera être utile au développement réel de tout le monde ! Dans la section suivante, nous apprendrons le concept de la stack Activty et les quatre modes de chargement ! Restez à l'écoute~Merci~