Contexte veut FLAG_ACTIVITY_NEW_TASK mais j'ai déjà mis le drapeau

J'ai créé un commun ré-utilisables en classe pour la société où je travaille à la création de certaines communes éléments de l'interface.

La classe, prend un seul paramètre, comme dans la construction: un contexte d'application.

l'une des méthodes, ContentClickableRowWithIcon vous permet de passer dans une intention d'être utilisé comme le clic d'action.

heres la méthode complète de la déclaration:

public LinearLayout ContentClickableRowWithIcon(Drawable icon, String title, Intent i, final Boolean chooser)

que le dernier attribut n'est utilisé dans le onClickEvent pour déterminer s'il convient d'appeler un Sélecteur ou tout simplement aller à droite dans l'intention.

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;
}

Comme mentionné dans les commentaires, à tout moment je n'ai pas offrir la possibilité d'utiliser un sélecteur, tout fonctionne bien (tout ce qui est dans cette liste, obtient une nouvelle activité drapeau, im bien conscient de cela et de nettoyage lorsque ce problème est compris)

Le moment, je fais, déclenche une exception:
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

Je suis à court d'idées...

///EDIT:: intéressant de noter, sur le débogage, l'attribut flags dans l'Intention est mis à 268435456 avec addFlags et 268435456 avec setFlags, lorsqu'il atteint le temps d'utiliser de l'intention dans l'action onClick

  • ont u essayé mContext.startActivity(Intent.createChooser(i, "Complete With...")); ?
  • J'imagine que la nouvelle Intention retourné par createChooser() n'a pas le FLAG_ACTIVITY_NEW_TASK ensemble. Essayer d'obtenir de l'intention, le paramétrage de l'indicateur, puis de l'appel d'startActivity
  • hormis le fait que je doit être final avais de toute façon? Quand je fais ça (à régler dans les paramètres final Intent i, les drapeaux ne jamais se mettre à tous, flags = 0 dans le debug
  • n'a tout simplement ceci: if(chooser) { Intent intent = i; intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(Intent.createChooser(intent, "Complete With...")); } dans leu, toujours écrasé :\
  • essayez ceci: Intent newIntent = Intent.createChooser(intent, "Complete With..."); newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(newIntent);
  • hmm intesting @Clyde qu'il ne plante pas plus, venez souper avec le sélecteur, mais n'a pas de remplir la liste.... très intéressant.. ok je PENSE que je peux travailler avec ce...