Intereting Posts
Делиться с использованием намерения facebook в android PopupWindow $ BadTokenException: Невозможно добавить окно – токен null недействителен Лучший способ определить, существует ли значение в канале JSON Parse.com datastore не закрепляет более одного несохраненного объекта Значок навигационного ящика стрелка вместо трех строк Как я могу автоматически сортировать список, чтобы он не прокручивал OpenID для приложений для Android, для которых требуется SignIn Android Socket Programming? Идентификатор ресурса не найден для атрибута 'parentActivityName' в пакете 'android' Google cloud messaging GCM через прокси-сервер Maven: использование библиотек Java 8 в приложениях, оснащенных модулем retrolambda-maven-plugin и DEX-ed с помощью Android-maven-plugin Интерфейс тестирования роботизированного Android с Teamcity Как приостановить handler.postDelayed () таймер на Android Как редактировать HTML / CSS / Javascript в Eclipse ADT Не удается получить значения из EditText Listview?

Контекст хочет FLAG_ACTIVITY_NEW_TASK, но я уже установил этот флаг

Я создал общий повторно используемый класс для компании, в которой я работаю, для создания некоторых общих элементов интерфейса.

Класс принимает один параметр, как в конструкции: контекст приложения.

Один из методов, ContentClickableRowWithIcon позволяет вам передать намерение использовать его как действие click.

Heres полное объявление метода:

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

Этот последний атрибут используется в onClickEvent, чтобы определить, следует ли вызывать Chooser или просто пойти прямо в намерение.

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

Как упоминалось в комментариях, в любое время, когда я не предоставляю возможность использовать выборщик, все работает нормально (все в этом списке получает новый флаг активности, хорошо осведомленный об этом и будет очищать, когда эта проблема будет выяснена)

Момент, который я делаю, выдает исключение: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

У меня кончились идеи …

/// EDIT :: Стоит отметить, что при отладке атрибут flags в Intent установлен в 268435456 с addFlags и 268435456 с setFlags, когда он достигает времени, чтобы использовать намерение в действии onClick

Solutions Collecting From Web of "Контекст хочет FLAG_ACTIVITY_NEW_TASK, но я уже установил этот флаг"

Проблема была исправлена, я думаю, что это просто сценарий «порядок работы»

Что позволило этой вещи работать:

  ll.setOnClickListener(new OnClickListener() { public void onClick(View v) { if(chooser) { Intent intent = Intent.createChooser(i, "Complete With"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent); } else mContext.startActivity(i); } }); 

Также добавил «окончательный» модификатор к параметру в объявлении метода

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

Фактически ваше исключение означает, что вы используете контекст отсутствия активности. Его можно вызвать из контекста приложения. Убедитесь, что вы находитесь в контексте деятельности, поскольку это не услуга