2016-02-14 3 views
1

Я пытаюсь обвести голову вокруг того, что такое условное обозначение потока действий.правильный поток активности андроида?

я в настоящее время:

public class MainActivity extends AppCompatActivity { 
    protected void onCreate(Bundle savedInstanceState) { 
     //do stuff 
     //clicklisteners setup etc 
     Intent intent = new Intent(this, ExampleActivity.class); 
     //putExtras 
     startActivity(intent); 
    } 
} 

public class ExampleActivity extends AppCompatActivity { 
    protected void onCreate(Bundle savedInstanceState) { 
     //getExtras 
     //objectA state lives here 
     //do stuff 
    } 
} 

Если пользователь нажимает назад, когда на представлении ExampleActivity, а затем нажимает другой слушатель, который принимает их ExampleActivity, я хочу, чтобы иметь возможность доступа к состоянию «Objecta» снова. Как это реализовать? Я не понимаю onResume или onRestart ...

Эти методы вызова? или существует ли лучшее соглашение для навигации по приложениям?

ответ

0

Если пользователь нажимает назад, когда в представлении ExampleActivity, ExampleActivity мертв, а пользователь возвращается в MainActivity, который вызывает «onResume». Когда вы вернулись из Activity1 в Activity2, вызывается метод onResume activity2. С учетом сказанного, после закрытия пользователя ExampleActivity objectA уничтожается.

+0

Полезно знать. Я понимал это, как только callCreate вызывается, активность не в фокусе, но все еще и объект. – smoke

1

У Android есть механизм для возврата результатов деятельности к предыдущему действию, которое запустило его. Документация для этого - here.

В принципе, можно использовать startActivityForResult, чтобы начать вторую активность, вторая активность использует setResult установить результаты, и первая деятельность получает эти результаты в onActivityResult обратного вызова, когда заканчивает вторую деятельность.

+0

Кажется, у меня нет достаточного количества очков для увеличения. Благодарю. поэтому я передаю намерение, а затем getIntent() в обратном вызове? – smoke

+0

Вы должны быть в состоянии принять ответ как правильный (что помогает мне, потому что я получаю за это кредит.) –

+0

Цель, которую вы передали setResult (int, Intent), становится доступной в качестве последнего параметра для обратного вызова onActivityResult(). –

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