Der Kontext möchte FLAG_ACTIVITY_NEW_TASK, aber ich habe dieses Flag bereits gesetzt
Ich habe eine gemeinsame wiederverwendbare Klasse für das Unternehmen erstellt, für das ich arbeite, um einige gemeinsame Oberflächenelemente zu erstellen.
Die Klasse nimmt einen einzelnen Parameter wie im Konstrukt auf: einen Anwendungskontext.
eine der Methoden,ContentClickableRowWithIcon
Ermöglicht die Übergabe einer Absicht, die als Klickaktion verwendet werden soll.
Hier ist die vollständige Methodendeklaration:
public LinearLayout ContentClickableRowWithIcon(Drawable icon, String title, Intent i, final Boolean chooser)
Das letzte dort angegebene Attribut wird im onClickEvent verwendet, um zu bestimmen, ob eine Auswahl aufgerufen werden soll oder ob direkt mit der Absicht begonnen werden soll.
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;
}
Wie in den Kommentaren erwähnt, funktioniert jedes Mal, wenn ich die Möglichkeit zur Verwendung eines Auswahlfensters nicht zur Verfügung stelle, alles in Ordnung (alles in dieser Liste erhält ein neues Aktivitätsflag, ich bin mir dessen sehr wohl bewusst und werde aufräumen, wenn dieses Problem herausgefunden wird).
In dem Moment, in dem ich das tue, wirft die Ausnahme:android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
Ich habe keine Ideen mehr ...
/// EDIT :: Bemerkenswerterweise wird beim Debuggen das flags-Attribut im Intent auf gesetzt268435456
mit addFlags und268435456
mit setFlags, wenn der Zeitpunkt erreicht ist, an dem die Absicht in der Aktion onClick verwendet werden soll