Interazione tra Attività ed Apps in Android

“Un Intento è un oggetto di messaggistica che puoi utilizzare per richiedere un’azione da un altro componente dell’app. Sebbene gli intenti facilitino la comunicazione tra i componenti in diversi modi, esistono tre casi d’uso fondamentali:

Avvio di un’attività
Un’attività rappresenta una singola schermata in un’app. Puoi avviare una nuova istanza di un’attività passando un intento a startActivity(). L’intento descrive l’attività da avviare e trasporta tutti i dati necessari.

Se desideri ricevere un risultato dall’attività al termine, chiama startActivityForResult(). La tua attività riceve il risultato come oggetto Intent separato nel callback onActivityResult() della tua attività. Per ulteriori informazioni, vedere la guida alle attività.

Avvio di un servizio
Un servizio è un componente che esegue operazioni in background senza un’interfaccia utente. Con Android 5.0 (livello API 21) e versioni successive, puoi avviare un servizio con JobScheduler. Per ulteriori informazioni su JobScheduler, vedere la relativa documentazione di riferimento API.

Per le versioni precedenti ad Android 5.0 (livello API 21), puoi avviare un servizio usando i metodi della classe Service. Puoi avviare un servizio per eseguire un’operazione una tantum (come il download di un file) passando un Intento a startService(). L’intento descrive il servizio da avviare e trasporta tutti i dati necessari.

Se il servizio è progettato con un’interfaccia client-server, è possibile eseguire il binding al servizio da un altro componente passando un Intent a bindService(). Per ulteriori informazioni, vedere la Guida ai servizi.

Consegnare una trasmissione
Una trasmissione è un messaggio che qualsiasi app può ricevere. Il sistema fornisce varie trasmissioni per eventi di sistema, ad esempio quando il sistema si avvia o il dispositivo inizia a caricarsi. Puoi inviare una trasmissione ad altre app passando un Intent a sendBroadcast() o sendOrderedBroadcast().”

Esempio:

public class MainActivity extends AppCompatActivity {
    public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /** Called when the user taps the Send button */
    public void sendMessage(View view) {
        Intent intent = new Intent(this, DisplayMessageActivity.class);
        EditText editText = (EditText) findViewById(R.id.editTextTextPersonName);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }
}

Articolo integrale -> Intents