2012-06-13 2 views
2

Мне нужно, чтобы содержимое в MAIN-операции обновлялось при возврате дочернего действия. Я попробовал следующий код внутри метода onActivityResult(), который отлично работает для других действий (не MAIN), но не для MAIN-активности.Как перезапустить MAIN-активность

if (resultCode == Activity.RESULT_OK){ 
    finish(); 
    startActivity(getIntent()); 
} 

Любые идеи о том, как сделать MAIN-активность еще раз выполнить OnCreate()?

Спасибо!

+0

вы можете просто вызвать OnCreate (NULL) – logcat

+0

вернуть их порядок: startActivity(), а затем закончить() –

+0

ваш код правильно !! я боюсь, что вы не достигли результата resultCode == Activity.RESULT_OK, чтобы поставить журналы и посмотреть. –

ответ

1

написать вещь на OnResume() method..it будет выполняться всегда, когда и вернуться обратно в основной activity..for детали пройти через деятельность жизненного цикла ..

+0

Перемещение кода, показанного в вопросе на onResume(), является катастрофическим, поскольку приложение не может даже запускаться в случае вызова final() в последний раз, а onCreate() не вызывается в случае вызова функции finish(). Кроме того, я хотел обновить активность только в случае, если дочерняя активность возвращает результат ОК, а не для всех случаев. –

0

Проблема, кажется, что setResult() игнорируется, если текущая активность перезапускается. См. Мой other post.

0

Ваш код должен выглядеть следующим образом:

Intent intent = new Intent(YourMainActivity.this, YourMainActivity.class); 
startActivity(intent); 
finish(); 
Смежные вопросы