爲什麼不使用AsyncTask
。您可以通過onPreExecute()
告訴Task顯示Please wait對話框,然後onPostExecute(Result result)
您可以刪除該對話框。這兩個方法正在UI線程上工作,而doInBackground(Params... params)
正在後臺線程中發生。
例子:
private class GetGPSTask extends AsyncTask<null, null, null>{
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
showWaitDialog(); <-Show your dialog
}
@Override
protected void doInBackground(null) {
//your code to get your GPS Data
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
HideDialogbox(); <-Code to hide the dialog box
}
}
只要記住,如果你需要更改模板類型。它說AsynTask,第一個值傳遞給doInBackground
,第二個值是進度值,第三個值是從doInBackground
到onPostExecute
的返回值。
您好我試圖通過該處理程序改變 '螺紋MyThread的=新MyClass的();' 到 '螺紋MyThread的=新MyClass的(處理程序);' 然後在接收它的run()方法,改變它到 '跑(處理程序處理程序);' 但是這並沒有工作,什麼是正確的方法來做到這一點? 謝謝 – user2566468
你有沒有調用handler.post(runnable)?您可以編輯您的帖子,並在代碼無法正常工作的情況下使用代碼進行更新。 –
是的,我做了,它的工作,但我沒有通過處理程序,我只是把它公開在Activity類,然後用它從Thread類調用它Activity.handler,但我的問題是如何傳遞處理程序作爲論據。謝謝! – user2566468