2013-12-18 2 views
0

Когда я перемещаюсь от активности с результатами расчета, например, чтобы проверить диаграммы в действии справки, и я выбираю кнопку «Назад» в панели действий, расчет был сброшен до нуля.Сведения о деятельности, потерянные при переходе на другую деятельность

Я знаю, что должен быть какой-то способ установить состояние активности на pause вместо того, чтобы остановить его, когда я уйду.

Кто-нибудь знает, как я мог бы достичь этого в коде? Есть ли способ установить активность так, чтобы она не уничтожалась, когда пользователь ее покинул? Также, если бы я должен был установить это, будет ли этот расчет исправлен для этого действия или он будет обновляться при пересчете?

Код для панели действий задней кнопки, как это:

 final Button actionBarHome = (Button)actionBarLayout.    
     findViewById(R.id.action_bar_title); 
     actionBarHome.setBackgroundResource(R.drawable.ic_action_back); 
     actionBarHome.setOnClickListener(this); 
     actionBarHome.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) {     

       startActivity(intent2); 

      } 

     }); 

Calculated resut!

Navigated away and clicked back button

Results cleared

+0

Try возни с Bundle? – Skynet

+0

Я не слишком хорошо знаком с состояниями пакетов, я только начал развиваться на Android с Java. –

+0

Настало время узнать: http://developer.android.com/reference/android/os/Bundle.html http://stackoverflow.com/questions/4999991/what-is-the-importance-of -bundle-in-a-android-program http://stackoverflow.com/questions/14876273/simple-example-for-intent-and-bundle – Skynet

ответ

3

Активность жизненный цикл из ваших рук на самом деле. Вы должны сами заниматься восстановлением своей деятельности. Поместите свои данные в пакет onSaveInstanceState и используйте пакет savedInstanceState Bundle в onCreate, чтобы повторно заполнить ваши представления.

Вы можете обратиться к этой статье Recreating an Activity

+0

Так что я думаю в этой ситуации: –

+0

'static final String OFFSET_LENGTH = "offsetlength"; public void onSaveInstanceState (Bundle savedInstanceState) { // Сохранение текущего состояния игры пользователя savedInstanceState.putdouble (OFFSET_LENGTH, mark1); super.onSaveInstanceState (savedInstanceState); ' –

+0

И затем, чтобы вспомнить данные, когда я загружаю такую ​​активность внутри onCreate? 'if (savedInstanceState! = null) { // Восстановить значение членов из сохраненного состояния marl1 = savedInstanceState.getInt (OFFSET_LENGTH);' –

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