ANR输入调度超时(等待,因为没有窗口有焦点,但最终可能有一个重点应用程序)

时间:2015-11-22 17:25:20

标签: android android-anr-dialog

我的应用程序的用户(Xperia Z1 Compact,Android 5.1)在我的应用程序设置时遇到崩溃。这是工作流程:

LaunchActivity是Launch intent(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输入调度超时(等待,因为没有窗口有焦点,但有一个专注的应用程序,最终可能在完成启动时添加一个窗口。)

有人知道如何解决这个问题吗?

非常感谢!

3 个答案:

答案 0 :(得分:0)

我遇到同样的问题,而且只会在一段时间内发生,而不是所有时间。

我认为如果Activity A在oncreate方法中跳转到Activity B,它可能会发生。但我没有证据。

答案 1 :(得分:0)

我遇到了同样的问题。 我将延迟时间从1000毫秒增加到2000毫秒,以开始新的活动。 之后,该ANR消失了。

答案 2 :(得分:-1)

2017年5月30日编辑:真正的解决方案是这些设备没有可用的文本到语音服务,我需要禁用对它的访问才能阻止这些崩溃。