在Android中,應用的響應性被活動管理器(ActivityManager)和窗口管理器(WindowManager(這兩個系統服務所監視.當用戶觸發了輸入事件(如鍵盤輸入,點擊按鈕等),如果應用5秒內沒有響應用戶的輸入事件,那麼,Android會認為該應用無響應,便彈出ANR(ApplicationNo Response)對話框,如下圖.
在正常情況下,Android程序會在一條單線程裡運行.如果Activity要處理一件比較耗時的工作,應該交給子線程完成,否側會因為主線程被阻塞,後面的用戶輸入事件因沒能在5秒內響應,導致應用出現ANR對話框.這也就是異步機制.
異步機制,有四種:
run.able
Thread
handler
AsyncTask