簡體   English   中英

developer.android.com/training bitmapfun項目

[英]developer.android.com/training bitmapfun project

我在我的應用程序中使用bitmapfun項目( ),而在測試時我發現了問題。 重現此問題的步驟如下:

  1. 打開wifi->啟動應用程序->下載圖片(效果很好)。
  2. 關閉應用程序(返回按鈕),停用wifi->激活數據網絡->重新啟動應用程序(仍然可以正常運行)。
  3. 在下載所有圖像之前,我關閉應用程序(后退按鈕)->停用數據網絡->激活wifi。 執行完此步驟后,當我重新啟動應用程序時,不會下載圖像。

在logcat中,我看到所有圖像都在imageWorker的cancelPotentialWork()中被取消,並且它們從未啟動。 我的猜測是以前的bitmapworkerTask( 負責下載 )正在發生某些事情,並且與新任務發生沖突。 在我的應用程序中,當按下時,我清除了所有緩存。 但這不是問題的原因,因為我也在原始bitmapfun中測試了相同的場景,並且問題也出現了! 我該如何解決這個問題? 我還將項目的多線程更改為一個線程! 有什么方法可以清除所有imageview引用並取消所有正在運行的任務?

對不起,我的英語沒有提供關於bitmapfun項目性質的更多信息,但這將極大地擴展我的問題!

編輯:為了重現此問題,每次使用菜單選項離開活動時,最好清除高速緩存。 此外,如果您一次執行步驟1-3,也不確定是否會出現問題。 也許您必須重復一遍!

Edit2(其他幫助):當我毫無問題地開始活動時,第一張圖像的日志如下:

04-24 02:31:56.400: D/ImageWorker(25625): doInBackground - starting work
04-24 02:31:56.400: D/ImageFetcher(25625): processBitmap - https://lh3.googleusercontent.com/--L0Km39l5J8/URquXHGcdNI/AAAAAAAAAbs/3ZrSJNrSomQ/s160-c/Antelope%252520Butte.jpg
04-24 02:31:56.400: D/ImageFetcher(25625): processBitmap, not found in http cache, downloading...

當我開始有問題的活動時,logcat是這樣的:

04-24 02:28:07.970: D/ImageWorker(24014): cancelPotentialWork - cancelled work for https://lh3.googleusercontent.com/--L0Km39l5J8/URquXHGcdNI/AAAAAAAAAbs/3ZrSJNrSomQ/s160-c/Antelope%252520Butte.jpg

為什么在第二種情況下將cancelPotentialWork稱為doInBackground卻從未啟動? 根據代碼序列,這是應該執行的下一部分。是否有人至少知道我應該在哪里搜索錯誤?

你怎么了就可以了。 因為ImageFetcher會在OnCreate()時加載圖像,但是會被網絡取消激活。 它不包含自動重啟代碼。 因此,如果您希望加載自動重啟,請添加代碼以檢測網絡的狀態變化。 我認為它不敏感。 只需讓用戶通過單擊諸如刷新按鈕之類的按鈕來重新啟動它即可。

暫無
暫無

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

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