为什么不使用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