andorid studio 線程內使用Toast.makeText 導致程序崩潰

此前新開了一個現場用於鏈接數據庫,處理完數據後採用toast的方式提示處理結果。但是發現程序直接崩潰了,查了資料才發現,非UI現場裏面不能直接使用toast,可以採用如下一個方法:就是在消息前後加入Looper,因爲在創建新線程的時候,默認情況下不會去創建新的MessageQueue。所以我們要自己創建。

Looper.prepare();
Toast.makeText(getApplicationContext(),"已經聯網存儲"+successCount+"條數據!",Toast.LENGTH_LONG).show();
Looper.loop();

Looper主要是用於封裝了android線程中的消息循環,默認情況下一個新線程是不存在消息循環(message loop)的,需要手動調用Looper.prepare()來給新線程創建一個消息循環,另外,可以調用Looper.loop()來使消息循環起作用,通過使用Looper.prepare()和Looper.loop()創建了消息隊列就可以讓消息處理在該線程中完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章