2013-04-16 4 views
4

У меня есть 3 мероприятия. A, B и C. Вызов B, B вызывает C, и результат C должен быть получен в A. Можете ли вы предложить, как это сделать? Я убиваю B, используя finish() после вызова C. Итак, результат C должен перейти непосредственно к A Activityonresult. Является ли это возможным??. Пожалуйста, дайте свои предложения!Вложенные действия для результата андроида

+1

Вместо того, чтобы убивать B, вы должны сделать onActivityResult() в B и вызвать вызов setResult(), проходящий по результату, полученному от C – FoamyGuy

+0

Попробуй это, спасибо за ответ! – bharath

ответ

8

Не убивайте B, в A начальной активности B с использованием startActivityForResult и B начальной активности C с использованием startActivityForResult затем в B onActivityResult

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) 
{ 
    super.onActivityResult(requestCode, resultCode, intent); 

    setResult(RESULT_OK, intent); 
    finish(); 
} 

где намерение состоит в том намерение отправлены обратно из C. Теперь A получит это намерение в A onActivityResult.

+0

Привет, спасибо за ответ, но мне нужно убить B. Позвольте мне объяснить свое пользовательское приложение для камеры, от A, я вызываю операцию открытия камеры в B с кнопкой захвата, при нажатии на захват в B, она переходит на C с параметрами сохранить и отбросить убийство B. Если его отбросить, B вызывается из C, и если его сохранение, битмап передается A. A. – bharath

+0

Итак, фактически, мне нужно закрыть B в C перед тем, как снова открыть B, возможно ли это? – bharath

+1

onActivityResult вызывается перед onResume, когда вы делаете так, как я предлагал в B onActivityResult, вызывается, а затем сразу же вызывается onDestroy, поэтому пользовательский интерфейс B вообще не отображается. –

2

Что делать, если вы позвоните C из A? Что-то вроде: A вызывает B; вместо вызова C из B, завершите его и сделайте A вызов C.

Если результат C не влияет на B. В таком случае у вас нет выбора, кроме как обрабатывать результат C в B и задавать результат A из там, если необходимо.

+0

Хм, сделай смысл, попробуй, спасибо. – bharath

Смежные вопросы