簡體   English   中英

Android animation 在啟動時導致“歷史記錄的活動空閑超時”

[英]Android animation causing “Activity idle timeout for History Record” on start up

我一直在尋找這個問題的答案,雖然我可以找到其他在日志貓中看到相同條目的人,但似乎沒有一個腳印與我的相似。

基本上,作為我的活動啟動的一部分,我開始無限重復 animation。 屏幕正確呈現,響應所有觸摸輸入,但我在我的 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}

我讀過帖子 state 這些條目確實只是警告,表明主線程循環器從未空閑,如果它是預期的操作模式,則不是問題。 但是,除了小重復 animation(每 3 秒重復一次的縮放/變換/alpha animation)填充消息隊列似乎過度的事實之外,我的主要問題是它阻止了創建自動化測試的能力。 我們正在嘗試使用 robotsium 實現測試,但由於空閑超時,測試永遠不會開始。

不啟動 animation 將消除此問題,但與其說是根本原因解決方案,不如說是一種解決方法。 我試圖了解我是否沒有正確實現我的動畫,這是否確實只是預期的行為,或者是否有辦法確保建立儀器/機器人的連接。

任何見解將不勝感激。 謝謝。

嘗試在新線程中啟動 animation,如果您在 onCreate 方法中執行的操作過多,您將阻塞 Android 中的 UI 線程,如果您在 5 秒之前花費超過 5 秒,可能會導致 ANR(應用程序無響應)返回。 通過在新線程中啟動 animation,onCreate 將返回並且系統會很高興。

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

重新繪制到屏幕上的代碼需要在不同的線程中啟動,否則主 UI 線程將永遠不會空閑,這會導致問題。

從另一個線程與 UI 交互時,您可能會遇到問題,為此您應該查看AsyncTask ,它實際上是用於計算/繪制進度條的。 警告數量過多很可能是因為警告是在 X 秒后的任何時間生成的,這僅受 Android 的檢查限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM