建立連接時,有時可能會發生錯誤或者wifi可能被關閉。所以在這些情況下,我想向用戶顯示Toast消息。在AsyncBackground中顯示「Toast」的好方法
所以,我想是這樣的:
protected String doInBackground (String ... args) {
QircAccount account = new MyAccount(getApplicationContext());
try {
acceptable = MyManager.INSTANCE.getService().getAcceptable(account.getUsername(), account.getAuthToken(), recId);
}
catch (RetrofitError re) {
Response r = re.getResponse();
if (r!=null && r.getStatus() == 403) {
isLoggedIn = false;
}
if (re.isNetworkError()) {
Toast.makeText(getBaseContext(), "Connectivity problem.", Toast.LENGTH_SHORT).show();
}
}
但是,這給出了一個錯誤,如:
Can't create handler inside thread that has not called Looper.prepare()
問題
- 所以最好在
onPostExecute
顯示吐司消息? - 如何將消息「連接問題」傳遞給
onPostExecute
?
沒有我需要檢查'onPostExecute'字符串,看它是否顯示 「連接問題」 ?否則,在每個onPostExecute中,用戶將看到一個Toast ...即使操作成功。 – birdy
@birdy然後不返回它,通過調用UI線程調用它 –