A juzgar por su OP, no estoy seguro de si es absolutamente necesario inicializar su mainActivity dos veces ..
Android está diseñado para que una aplicación no está realmente cerrado por el usuario . Concéntrese en sustituyendo los métodos del ciclo de vida android como onResume y OnPause para guardar los datos de interfaz de usuario, etc.
Por lo tanto, no es necesario que explícitamente finish()
la actividad principal (y realmente no debería). Para recibir datos de inicio de sesión o sincronización de las actividades anteriores, simplemente anule el método OnActivityResult()
. Sin embargo, para hacer esto, debe comenzar la actividad usando startActivityForResult(intent)
. Así que para cada actividad que debe hacer esto:
Actividad principal:
static public int LOGIN_RETURN_CODE = 1;
para iniciar entrada:
Intent intent = new Intent(MainActivity.this, LogInActivity.class);
startActivityForResult(intent, LOGIN_RETURN_CODE);
para recibir registrado información:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case LOGIN_RETURN_CODE:
//do something with bundle attached
}
}
actividad ingreso:
static public int SYNC_RETURN_CODE = 2;
al inicio de sincronización:
Intent intent = new Intent(LogInActivity.this, SyncActivity.class);
startActivityForResult(intent,SYNC_RETURN_CODE);
para recibir información y volver a la principal:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case MainActivity.SYNC_RETURN_CODE:
Intent intent = new Intent(...);
intent.setResult(RESULT_OK);
finish();
}
}
esto podría no todo compilar, pero espero que usted consigue la idea.
¿qué significa "al mismo tiempo"? – Blackbelt
Me acaba de arreglar la pregunta –