Android Motif de départ


Exemple

Ce modèle est une approche plus stricte pour démarrer une Activity . Son objectif est d'améliorer la lisibilité du code tout en réduisant la complexité du code, les coûts de maintenance et le couplage de vos composants.

L'exemple suivant implémente le modèle de démarrage, qui est généralement implémenté en tant que méthode statique sur l' Activity elle-même. Cette méthode statique accepte tous les paramètres requis, construit une Intent valide à partir de ces données, puis démarre l' Activity .

Un Intent est un objet qui fournit une liaison d'exécution entre des composants distincts, tels que deux activités. L'intention représente "l'intention de faire quelque chose" d'une application. Vous pouvez utiliser des intentions pour une grande variété de tâches, mais ici, votre intention commence une autre activité.

public class ExampleActivity extends AppCompatActivity {

    private static final String EXTRA_DATA = "EXTRA_DATA";

    public static void start(Context context, String data) {
        Intent intent = new Intent(context, ExampleActivity.class);
        intent.putExtra(EXTRA_DATA, data);
        context.startActivity(intent);
    }       

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = getIntent();
        if(!intent.getExtras().containsKey(EXTRA_DATA)){
            throw new UnsupportedOperationException("Activity should be started using the static start method");
        }
        String data = intent.getStringExtra(EXTRA_DATA);
    }
}

Ce modèle vous permet également de forcer la transmission de données supplémentaires avec l'intention.

L' ExampleActivity peut alors être démarré comme ceci, où le context est un contexte d'activité:

ExampleActivity.start(context, "Some data!");