onstop onrestart intent desde created boton activity abrir android android-activity

onrestart - onresume android



Android obtenga actividad previa (6)

Cuando pasas de una actividad a otra puedes pasar el nombre de la actividad como se indica a continuación

Intent i = new Intent(this, deliveries.class); i.putExtra("ActivityName", "ActivityOne"); startActivity(i);

y verifica el nombre de la actividad en la otra actividad

Bundle extra = getIntent().getExtras(); String activityName = Long.parseLong(extra.getSerializable("ActivityName") toString());

Creo que puede resolver tu problema

Tengo 2 actividades: Activity1 y Activity2 . En cada una de estas actividades hay un botón que me lleva a una tercera actividad ( MainActivity ). En MainActivity quiero saber de qué página de actividad se llamó.


Puede usar el atributo putExtra del Intento para pasar el nombre de la Actividad.

Actividad de llamada,

Intent intent = new Intent(this, Next.class); intent.putExtra("activity","first"); startActivity(intent);

Siguiente actividad,

Intent intent = getIntent(); String activity = intent.getStringExtra("activity");

Ahora en la actividad de cadena obtendrá el nombre de la Actividad que tiene.


Puedes usar:

public ComponentName getCallingActivity()

para saber qué actividad llamó su Activity actual.


Use putExtra () para identificar la actividad previa.

Intent i = new Intent(Activity1.this, MainActivity.class).putExtra("from", "activity1"); startActivity(i);

Para verificar la actividad en la actividad principal,

if(getIntent().getStringExtra("from").equals("activity1")){ //From Activity 1 }else { // Activity 2 }


cuando comienzas tu actividad:

Intent intent = new Intent(activity, HistoryDetailsResults.class); intent.putExtra(Activity.ACTIVITY_SERVICE, activity.getLocalClassName()); activity.startActivity(intent);

Uso de Activity.ACTIVITY_SERVICE Supongo que usa una buena práctica. ( Activity.ACTIVITY_SERVICE es la String : ''actividad'' )

activity.getLocalClassName() da esto: view.YourActivity as String

EDITAR: En lugar de usar activity activity.getLocalClassName() prefiero usar activity.getClass().getSimpleName()

Paso 1 en tu actividad de inicio

Intent intent = new Intent(activity, HistoryDetailsResults.class); intent.putExtra(Activity.ACTIVITY_SERVICE, activity.getClass().getSimpleName()); activity.startActivity(intent);

Paso 2 en tu actividad de destino

Intent intent = getIntent(); String startActivity = intent.getStringExtra(Activity.ACTIVITY_SERVICE) String activityToCompare = YourActivityToCompare.class.getSimpleName()

Y que quieres hacer :

if( startActivity.equalsIgnoreCase(activityToCompare) { //Do what you want }


ActivityManager am = (ActivityManager) this.getSystemService(Activity.ACTIVITY_SERVICE); String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName(); String className = am.getRunningTasks(1).get(0).topActivity.getClassName();

y hemos establecido el permiso:

<uses -permission="-permission" android:name="android.permission.GET_TASKS"> </uses>