2015-11-22 4 views
1

Пользователь моего приложения (Xperia Z1 Compact, Android 5.1) испытывает сбой в моем приложении, когда он его настраивает вверх. Вот рабочий процесс:ANR Input dispatching timed out (Ожидание, потому что ни одно окно не имеет фокуса, но есть сфокусированное приложение, которое может в конечном итоге)

LaunchActivity - это намерение запуска (noHistory = true, singleTask). Он проверяет, является ли это первым запуском приложения или нет. Это первый запуск, поэтому он запускает BootActivity (noHistory = true, singleTask). BootActivity показывает анимацию в 3 секунды и затем открывает AddGoogleNewsActivity (singleTask). Это код, который открывает AddGoogleNewsActivity:

в OnCreate:

new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      endSplash(); 
     } 
    }, 3000); 


private void endSplash() { 
    YoYo.with(Techniques.FadeOut) 
      .duration(1000) 
      .interpolate(new AccelerateDecelerateInterpolator()) 
      .withListener(new com.nineoldandroids.animation.Animator.AnimatorListener() { 
       @Override 
       public void onAnimationStart(com.nineoldandroids.animation.Animator animation) { 

       } 

       @Override 
       public void onAnimationEnd(com.nineoldandroids.animation.Animator animation) { 
       } 

       @Override 
       public void onAnimationCancel(com.nineoldandroids.animation.Animator animation) { 

       } 

       @Override 
       public void onAnimationRepeat(com.nineoldandroids.animation.Animator animation) { 

       } 
      }) 
      .playOn(logo); 
    YoYo.with(Techniques.FadeOut) 
      .duration(1000) 
      .interpolate(new AccelerateDecelerateInterpolator()) 
      .playOn(title2_txt); 
    YoYo.with(Techniques.FadeOut) 
      .duration(1000) 
      .interpolate(new AccelerateDecelerateInterpolator()) 
      .playOn(title_txt); 
    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      if (intent.equals("start")) { 
       startActivity(new Intent(BootActivity.this, AddGoogleNewsActivity.class)); 
      } else if (intent.equals("complete")) { 
       Intent goToBoot = new Intent(BootActivity.this, HomeActivity.class); 
       goToBoot.putExtra("intent", "setupdone"); 
       startActivity(goToBoot); 
      } 
     } 
    }, 1000); 
} 

В AddGoogleNewsActivity, приложение получает ANR: ANR Input диспетчирование истекло (Ожидание, потому что ни одно окно не имеет фокус, но есть целенаправленный приложение, которое может в конечном итоге добавить окно, когда оно закончит запуск.)

Кто-нибудь знает, как я могу это исправить?

Большое спасибо!

+0

Вы должны написать полный след ANR – JoxTraex

ответ

-2

EDIT от 30 мая 2017 года. РЕАЛЬНОЕ решение заключалось в том, что у этих устройств не было доступных услуг Text to Speech, и мне необходимо было отключить доступ к нему вообще, чтобы остановить эти сбои.

+0

Я вижу эту проблему на Amazon Fire TV, которая основана на Android 5.1. Я был настроен скептически, что это будет проблемой, но я все равно попробовал. Это не повлияло на мою проблему. – bkant

+0

@bkant Возможно, мое редактирование может помочь вам. –

+0

@Florent Anders Вы могли бы предоставить дополнительную информацию и, возможно, код для своего редактирования? – snachmsm

0

У меня такая же проблема, и это происходит только через некоторое время, не все время.

Я думаю, что если действие A перейдет в действие B в методе oncreate, это, возможно, произойдет. Но у меня нет доказательств.