启动时导致“历史记录活动空闲超时”的Android动画

时间:2011-08-16 20:41:13

标签: android animation timeout launch

我一直在寻找这个问题的答案,虽然我可以找到其他在日志中看到相同条目的人,但是没有任何足迹看起来与我的相似。

基本上我开始无限重复动画作为我的活动启动的一部分。屏幕呈现正确,响应所有触摸输入,但我在logcat中获得以下条目:

08-17 16:03:25.910:WARN / ActivityManager(110):启动超时已过期,放弃唤醒锁定! 08-17 16:03:25.972:WARN / ActivityManager(110):HistoryRecord的活动空闲超时{4057ad58 com.companyname.dm/.ui.activities.home.HomeActivity}

我已阅读帖子,说明这些条目确实只是警告,表明主线程循环器从未变为空闲,如果它是预期的操作模式则不是问题。然而,除了这个事实似乎过多的小重复动画(每3秒重复一次的缩放/变换/ alpha动画)正在填充消息队列,我的主要问题是它阻止了创建自动化测试的能力。我们正在尝试使用robotium来实现测试,但由于空闲超时,测试永远不会启动。

不启动动画将消除此问题,但更多的是解决方法而不是根本原因解决方案。我试图了解我是否要么没有正确实现我的动画,如果这确实只是预期的行为,或者如果有办法确保连接将建立仪器/机器人。

非常感谢任何见解!谢谢。

2 个答案:

答案 0 :(得分:0)

尝试在新线程中启动动画,如果你在onCreate方法中做太多东西,你将阻止Android中的UI线程,如果你花费的时间超过,它可能会导致ANR(应用程序没有响应)返回前5秒。通过在新线程中启动动画,onCreate将返回,系统将很高兴。

new Thread(new Runnable() {
  public void run() {
    //start animation.
  }
}.start();

答案 1 :(得分:0)

重新绘制到屏幕的代码需要在不同的线程中启动,否则主UI线程永远不会变为空闲,这会导致问题。

当您从另一个线程与UI交互时可能会遇到问题,为此您应该查看AsyncTask,这实际上是用于计算/绘制进度条的内容。隐藏的警告数量很可能是因为警告是在X秒之后的任何时间生成的,这仅受到Android检查的限制。