2016-08-30 4 views
0

в моем коде я зову новую деятельность, но старый один получает не остановилсяЗапуск новой деятельности не приостанавливает текущий

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     float x = event.getX(); 
     float y = event.getY(); 
     float[] userCordinates = new float[2]; 

     userCordinates[0] = x; 
     userCordinates[1] = y; 
     userSequence.add(userCordinates); 
     for (int r = 0; r < copySeq.size(); r++) { 
      ImageView iv = (ImageView) (findViewById((Integer) copySeq.get(r))); 
      int[] loc = new int[2]; 
      iv.getLocationOnScreen(loc); 
      float xRangeMax = iv.getRight(); 
      float xRangeMin = iv.getLeft(); 
      float yRangeMax = iv.getBottom(); 
      float yRangeMin = iv.getTop(); 

      Integer point = (Integer)copySeq.get(r); 

      if (x <= xRangeMax && x >= xRangeMin 
       && y <= yRangeMax && y >= yRangeMin) { 
       if(copyColor.get(r).equals("green")){ 
       Intent intent = new Intent(this, ChildLevel.class); 
    startActivity(intent); 
      } 
      break; 
     } 
    } 
} 

Когда новый Activity запускается этот код надрез в текущем Activity выполняется, но должен быть выполнен, когда я вернусь. Например. этот Activity должен быть остановлен точно в этой точке.

if (userSequence.size() >= finalSequence.size()) { 
     childLevel=false; 
     save(); 
     check(userSequence); 
     touchView.setEnabled(false); 
    } 
}  
return false; 

Может ли кто-нибудь сказать мне, что я делаю неправильно? Благодаря!

+0

второй фрагмент кода - insi de ChildLevel? –

+0

@ Matias Elorriaga no второй фрагмент относится к первому –

ответ

1

При запуске операции ChildLevel активна текущая (позволяет позвонить ей MainActivity) (onPause() метод называется).

Если вы хотите, чтобы второй фрагмент кода будет выполняться, когда вы вернетесь к MainActivity, поставить этот код внутри onResume() метода в MainActivity

EDIT: так, вам нужно только выполнить ту часть кода, когда вы идете назад до MainActivity от ChildLevel. Вы должны использовать startActivityForResult():

В MainActivity, вместо startActivity() используйте startActivityForResult():

Intent intent = new Intent(this, ChildLevel.class); 
startActivityForResult(i, 123); 

Затем в ChildLevel, когда вы хотите, чтобы вернуться:

Intent returnIntent = new Intent(); 
setResult(Activity.RESULT_OK, returnIntent); 
finish(); 

Наконец, в MainActivity :

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == 123) { 
     if (resultCode == Activity.RESULT_OK){ 
      // the code you want to execute 
     } 
    } 
} 
+0

, но когда я помещаю его в onResume, ocde также запускается, когда действие возобновляется с других резонансов, например, после нажатия кнопки home, в этом случае фрагмент не должен выполняться –

+0

да, вы сказали «но это должно быть выполнено, когда я возвращаюсь» .. что именно вы хотите? пожалуйста, будьте яснее –

+0

этот сниппет должен быть выполнен, когда я возвращаюсь из новой активности, которую я вызывал до –

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

  • Нет связанных вопросов^_^