我有顯示進度對話框......和我執行3只HTTP請求一個單獨的線程的方法...更新進度從線程之外對話框
這裏是代碼...
public void downloadData(View v)
{
final ProgressDialog prog;
try
{
// setup progress dialog
prog = new ProgressDialog(this);
prog.setTitle("Downloading Data");
prog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
prog.setIcon(R.drawable.firstdroidicon);
prog.setCanceledOnTouchOutside(false);
prog.setCancelable(false);
prog.show();
Thread syncThread = new Thread();
syncThread = new Thread()
{
public void run()
{
String result = "";
String URL = //url for ReST service
String urlParams = "";
GetByREST gbr = new GetByREST();
// run the customer search
prog.setMessage("Fetching Customers");//update progress dialog
result = //execute first post
// run the contact search
prog.setMessage("Fetching Contacts");//update progress dialog
result = //execute second post
// run the item saved search
prog.setMessage("Fetching Items");//update progress dialog
result = //execute third post
prog.dismiss();
};
syncThread.start();
}
catch (Exception e)
{
messageBox("downloadData", e.getMessage());
}
}
如何在每次請求前更新進度對話框消息?
我試過這個,它工作正常。然而,對每個請求執行此操作可能會使代碼顯得雜亂無章。 –
最簡單的方法是不要使用一個匿名類 - 把runnable的代碼放在其他地方,只是在線程runnable中通過new創建它。實際上,因爲所有3個都設置了不同的字符串,所以你可以讓它們成爲一個接受字符串參數的類。 –