respuesta de Elaboración Alex Volovoy un poco más -
en caso de que u está recibiendo este problema con fragmentos, getActivity() funciona bien para obtener el contexto
En otros casos:
Si no desea usar-
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//not recommend
luego hacer una función como esta en su OutsideClass -
public void gettingContext(Context context){
real_context = context;//where real_context is a global variable of type Context
}
Ahora, en su actividad cuando cada vez que realice una nueva OutsideClass llaman el método anterior inmediatamente después de definir la OutsideClass dando contexto de la actividad como argumento también en su actividad crea un Función-
public void startNewActivity(final String activity_to_start) {
if(activity_to_start.equals("ACTIVITY_KEY"));
//ACTIVITY_KEY-is a custom key,just to
//differentiate different activities
Intent i = new Intent(MainActivity.this, ActivityToStartName.class);
activity_context.startActivity(i);
}//you can make a if-else ladder or use switch-case
ahora volver a su OutsideClass, y para iniciar una nueva actividad hacer algo como esto:
@Override
public void onClick(View v) {
........
case R.id.any_button:
MainActivity mainAct = (MainActivity) real_context;
mainAct.startNewActivity("ACTIVITY_KEY");
break;
}
........
}
De esta manera usted será capaz de iniciar diferentes actividades llamadas desde diferentes OutsideClass sin desordenar con banderas.
Nota: intente no almacenar en caché el objeto de contexto mediante el constructor para el fragmento (con el adaptador, está bien). Un fragmento debe tener un constructor vacío; de lo contrario, la aplicación se bloquea en algunos escenarios.
recuerde llamar
OutsideClass.gettingContext(Context context);
en la función onResume() también.
Creo que la respuesta de Alex debe ser el 'aceptado' solución a su problema, ya que rectifica el error que mencionó de una manera más genérica –
Me encanta "¿Es esto realmente lo que quiere?" ... He recibido un mensaje antes que decía "¿Estás seguro de que no olvidaste anular el registro de un receptor de transmisión en algún lado?" ¡INCREÍBLE! Felicitaciones a quien puso todos estos pequeños mensajes para ayudarnos a pichones. –