當我第一次使用我的應用程序時,我正在執行某些需要「隨機」時間才能完成的數據設置,而這種情況正在發生,我正在顯示進度與用戶對話,告訴他們發生了什麼並展示了一個旋轉輪,這些都是通過一個異步任務完成的,因爲許多文檔和指南認爲這是使用進度對話框的唯一方法。Android - 「同步」任務的進度對話框
但我的問題是我需要我的應用程序中的所有其他應用程序「等待」數據設置完成之前,它的業務,但仍然保持方便的對話框告訴用戶發生了什麼事情,即時通訊努力尋找去做這件事。
如果任何人有任何想法是偉大的。
當我第一次使用我的應用程序時,我正在執行某些需要「隨機」時間才能完成的數據設置,而這種情況正在發生,我正在顯示進度與用戶對話,告訴他們發生了什麼並展示了一個旋轉輪,這些都是通過一個異步任務完成的,因爲許多文檔和指南認爲這是使用進度對話框的唯一方法。Android - 「同步」任務的進度對話框
但我的問題是我需要我的應用程序中的所有其他應用程序「等待」數據設置完成之前,它的業務,但仍然保持方便的對話框告訴用戶發生了什麼事情,即時通訊努力尋找去做這件事。
如果任何人有任何想法是偉大的。
您可以使用線程做數據設置後更新進度對話框,並處理完畢後工作線程結束..
查看下面
ProgressDialog pd = ProgressDialog.show(this,"Please Wait..", "Data Setup in Progress..", false, true);
pd.setCanceledOnTouchOutside(false);
Thread tDataSetup = new Thread(
new Runnable()
{
@Override
public void run()
{
//Insert the data setup code here..
if(dataSetupDone)
handlerDataSetup.sendEmptyMessage(OPERATION_COMPLETED);
else
handlerDataSetup.sendEmptyMessage(OPERATION_NOT_COMPLETED);
}
});
tDataSetup.start();
private Handler handlerDataSetup = new Handler()
{
@Override
public void handleMessage(Message msg)
{
if(pd.isShowing())
{
pd.dismiss();
}
if(msg.what == OPERATION_COMPLETED)
//Code after the data Setup done , to be implemented here..
else if(msg.what == OPERATION_NOT_COMPLETED)
//Code if data setup fails..
}
};
像這樣的東西應該工作:
ProgressDialog progress = new ProgressDialog(this);
progress.setTitle("Loading");
progress.setMessage("Wait while loading...");
progress.show();
// your vairiable time stuff here
// To dismiss the dialog
progress.dismiss();
,如果你需要完成一些工作,你可以這樣做
progress.setMessage("I have a new message now");
on post execute progress.cancel(); –