Per quanto ne so, cambiare programma di avvio non è possibile, ma non ha senso.
Sul tuo LoginActivity onCreate
controlla se un nome utente e un token sono già stati salvati, se si tenta di accedere automaticamente con quello, è possibile eseguire il reindirizzamento al tuo MainAcivity. A seconda del modo in cui la tua app funziona, puoi avere una variabile che controlla se un utente ha effettuato l'accesso o meno, se è il LoginActivity lo reindirizza a MainActivity senza tentare di accedere nuovamente.
//LoginActivity
onCreate(Bundle bundle)
{
/* ... */
//Or whatever you use to login (it could also go inside a thread or an AsyncTask
if (login())
{
//Intent
Intent intent = new Intent(this, MainActivity.class);
//Start Activity
startActivity(intent);
//Finish this activity, so when user pressed back the login activity will not come forth and the app will exit
//this looks like when a user has logged in once, the login screen will not be visible to him (unless you want to)
finish();
}
}
È anche possibile configurare per salvare il nome utente e il token solo se un accesso riesce che significa che il codice di cui sopra può essere modificato in questo modo:
if (getUsername() != null)
{
/* Start Main Activity */
}
Questo non tenterà di accedere, ma sa che le credenziali sono corrette poiché ha effettuato l'accesso almeno una volta con loro.
Se la vostra applicazione si comporta un modo diverso che questi metodi non funzionano, non esitate a dirlo, io possa essere in grado di fornire più informazioni
controllo se il login al LoginActivity utilizzando Preferenze, quindi aprire MainAcivity e finitura LoginActivity se utente è connesso – Yazan
Se controllo preferenze MainActivity allora sarà meglio, come il passaggio per accedere attività si verifica meno senza di volte , destra ? –
potrebbe essere, dipende dalla tua azienda, se alcuni dati vengono recuperati una volta che mainAcitivty viene caricato, allora potresti ricevere alcuni errori se l'utente non ha effettuato l'accesso, altrimenti potrebbe andare bene. – Yazan