2015-10-29 88 views
0

我是新來的多線程編程。我現在在Android Studio for API 16上爲智能手機開發應用程序。搜索關於如何暫停我的程序的幫助,我發現sleep()由於線程化而不好。請告訴我:調試java android多線程

  1. 對於多核處理器(可能取決於API版本),Android是否存在「真正的」多任務處理?
  2. 有沒有(不知道正確的術語)暫停一個線程開始在Android上進行其他多任務處理?
  3. 如果是1或/和2 - 如何調試代碼 - Studio將打開新窗口的新方法調用(線程啓動) - 我自己還沒有看到呢?也許其他調試工具?
  4. 在運行過程中 - 如果我在監聽程序(相同或其他方法)上的運行沒有完成時單擊帶監聽程序的說話按鈕 - 它會開始處理並行的方法嗎?
  5. 同樣的問題,如果首次運行通過postDelayed推遲?

非常感謝!

回答

0

由於異步處理是目前大多數應用程序的活力,Android確實支持MultiTasking

Android支持多線程,就像Java一樣,每個應用都有一個UI線程來處理來自用戶的輸入事件並修改用戶界面。這個線程被稱爲主線程。而在時間,你不能在主線程使用的一切,在這種情況下,Android提供你主要是2種方式來實現併發:

  • 處理器
  • 的AsyncTask

使用線程,是不建議在Android中,由於以下原因:

  • 同步與主線程,如果你回髮結果給 用戶界面
  • 沒有默認取消線程
  • 沒有默認的線程池
  • 沒有默認處理Android中
  • 配置更改

在大多數情況下,AsyncTask是最佳的選擇,你可以閱讀更多關於AsyncTaskhere另外,如果你想了解更多關於Android的併發性,請參考this