Kontekst chce FLAG_ACTIVITY_NEW_TASK, ale już ustawiłem tę flagę
Stworzyłem wspólną klasę wielokrotnego użytku dla firmy, dla której pracuję, aby utworzyć kilka wspólnych elementów interfejsu.
Klasa przyjmuje pojedynczy parametr, jak w konstrukcie: kontekst aplikacji.
jedna z metod,ContentClickableRowWithIcon
pozwala przejść w zamierzeniu, które zostanie użyte jako akcja kliknięcia.
Oto deklaracja pełnej metody:
public LinearLayout ContentClickableRowWithIcon(Drawable icon, String title, Intent i, final Boolean chooser)
ten ostatni atrybut jest używany w zdarzeniu onClickEvent, aby określić, czy wywołać selektora, czy po prostu wejść w intencję.
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;
}
Jak wspomniano w komentarzach, za każdym razem, gdy nie zapewniam możliwości korzystania z selektora, wszystko działa dobrze (wszystko na tej liście otrzymuje nową flagę aktywności, dobrze o tym wiem i będzie czyszczone, gdy problem zostanie rozwiązany)
Moment, w którym to robię, powoduje wyjątek:android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
Skończyły mi się pomysły ...
/// EDIT :: Warto zauważyć, że w debugowaniu atrybut flags w Intencie jest ustawiony na268435456
z addFlags i268435456
z setFlags, gdy osiągnie czas użycia intencji w akcji onClick