2014-12-28 3 views
0

У меня есть простой вопрос.java.lang.RuntimeException: не удалось возобновить активность API 17

Я работаю над своим проектом здесь, на андроиде, и когда я пробовал его на своем мини-телевизоре samsung s5, все в порядке, я вообще не ошибаюсь. Результаты возвращаются к моему первому действию.

Но когда я пытаюсь запустить свой проект на моей старой галактике s2 я столкнулся этой ошибка

java.lang.RuntimeException: Unable to resume activity 

    Caused by: java.lang.RuntimeException: Failure delivering result 
    ResultInfo{who=null, request=1, result=-1, data=Intent { 
    cmp=com.pullups.thomas.pullup/.Workout (has extras) }} to activity 
    {com.pullups.thomas.pullup/com.pullups.thomas.pullup.Workout}: 
    java.lang.NumberFormatException: Invalid int: "" 

Может кто-нибудь сказать мой, почему это прекрасно работает с моей галактикой s5 мини, но не с моей галактикой s2.

s5 мини работает на 4.4.2 Galaxy S2 работает на 4.2.2

+1

Это очень ясно - 'Invalid int:" "' вы пытаетесь преобразовать пустую строку в int где-нибудь. – Simon

+0

можете ли вы разместить свой код? Мне кажется, что вы получаете что-то в 'onActivityResult (int requestCode, int resultCode, Intent data)' method, где 'int =" "' – abhinav

ответ

0

Вот код моей второй деятельности (тот, кто посылает результат) я получить дополнительный и когда пользователь нажимает на кнопка я добавить +1 к compteurTimer и отправить его обратно к первому виду деятельности, так что это явно не пустой ИНТ, потому что, по крайней мере 1 является значение

Intent intent = getIntent(); 
    compteurTimer = intent.getExtras().getInt("compteurEntrainement",1); 

    btn_passer.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      Intent workout = new Intent(CountDown.this, Workout.class); 
      MyCount_DownTimer.cancel(); 

      compteurTimer++; 

      workout.putExtra("compteurTimer", compteurTimer); 

      setResult(RESULT_OK, workout); 

      finish(); 
      } 
    }); 

по умолчанию Тогда в первой деятельности я получил onActivity код результата

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

    if (requestCode == 1 && resultCode == RESULT_OK && data != null) { 

     compteurEntrainement = data.getIntExtra("compteurTimer", 1); 

     switch (compteurEntrainement){ 
      case 2: 
       backColorDisplay(viewSerie2, viewSerie1, tabOfSeries[1]); 
       break; 
      case 3: 
       backColorDisplay(viewSerie3, viewSerie2,tabOfSeries[2]); 
       break; 
      case 4: 
       backColorDisplay(viewSerie4, viewSerie3,tabOfSeries[3]); 
       break; 
      case 5: 
       backColorDisplay(viewSerie5, viewSerie4,tabOfSeries[4]); 

       btnComplet.setText("TERMINÉ"); 
       btnComplet.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         final Intent pre_workout = new Intent(Workout.this, Pre_Workout.class); 

         setResult(RESULT_OK, pre_workout); 

         finish(); 
        }//onClick 
       }); 
       break; 
      default: 
       viewSerieEnCours.setText(viewSerie1.getText().toString()); 
       break; 
     }//switch 
    }//if 
}//onActivityResult 

вопрос, о котором я спрашиваю, почему этот код работает без ошибок на моем s5 mini, но не работает на моей галактике s2.

Пока я добавил это к моей первой деятельности

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    // Always call the superclass so it can save the view hierarchy state 
    super.onSaveInstanceState(savedInstanceState); 
} 

И после этого я, у меня нет ошибки, но compteurTimer не увеличивающиеся себя так я stucked

0

несколько советов:

Вы можете использовать параметр меньше конструктор для результата Intent:

Намерение данных = новый Intent(); /// данные ..... setResult (Activity.RESULT_OK, данные); finish();

Не нужно явно указывать, какую деятельность использовать в качестве доставки.

Также убедитесь, что вы не вызываете финиш в другом месте, например, в этом MyCount_DownTimer.

Убедитесь, что в строке: workout.putExtra("compteurTimer", compteurTimer);, compteurTimer имеет значение int.

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