((Activity)getApplicationContext()).runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
此代碼是否正確?我覺得很麻煩!getApplicationContext()作爲執行runOnUiThread()的活動?
((Activity)getApplicationContext()).runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
此代碼是否正確?我覺得很麻煩!getApplicationContext()作爲執行runOnUiThread()的活動?
runOnUiThread()
這是從Activity
的方法,所以如果你是一個Activity
就可以避免這一點:((Activity)getApplicationContext())
,但如果你是一個Fragment
,你需要得到你的第一個Activity
,然後調用該方法,否則你將無法稱呼它。
你應該改變這樣的:((Activity)getApplicationContext())
這樣:
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
它可以扔你ClassCastException
爲黑帶的評論說。
看到這個答案:https://stackoverflow.com/a/6760019/923441
你絕對不應該投getApplicationContext()來Actvity,它不保證工作,這樣的節目會導致死機的路線。
不,它不是一個活動 – tyczj
我這麼認爲,但我不知道這段代碼是否成功執行@tyczj – zys
它應該崩潰爲ClassCastException – Blackbelt