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>