El contexto quiere FLAG_ACTIVITY_NEW_TASK pero ya he establecido esa bandera
He creado una clase reutilizable común para la empresa para la que trabajo para crear algunos elementos de interfaz comunes.
La clase, toma en un solo parámetro como en la construcción: un contexto de aplicación.
uno de los métodos,ContentClickableRowWithIcon
le permite pasar una intención que se utilizará como acción de clic.
Heres la declaración de método completo:
public LinearLayout ContentClickableRowWithIcon(Drawable icon, String title, Intent i, final Boolean chooser)
ese último atributo se usa en onClickEvent para determinar si invocar un Selector o simplemente ir directamente a la intención.
public LinearLayout ContentClickableRowWithIcon(Drawable icon, String title, Intent i, final Boolean chooser) {
LinearLayout ll = new LinearLayout(mContext);
// .. LinerLayout construction, has nothing to do with the action
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this is apparently getting ignored... (ps: i've tried i.setFlags as well)
final Intent intent = i;
ll.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(chooser)
mContext.startActivity(Intent.createChooser(intent, "Complete With...")); // crashes here with: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
else
mContext.startActivity(intent); // this works fine
}
});
return ll;
}
Como se mencionó en los comentarios, siempre que no ofrezco la posibilidad de usar un selector, todo funciona bien (todo en esta lista recibe un nuevo indicador de actividad, estoy muy consciente de esto y lo limpiaré cuando este problema se resuelva)
En el momento que lo hago, lanza la excepción:android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
Me he quedado sin ideas ...
/// EDIT :: Destacando, en la depuración, el atributo flags en el Intent está establecido en268435456
con addFlags y268435456
con setFlags, cuando llega el momento de usar la intención en la acción onClick