2014-10-16 74 views
0

我必須更新一些應用程序。它已被使用,所以我不想做大的更改...如何將progressDialog或微調器添加到已完成的應用程序中?

我想在每次加載新活動時添加進度對話框或微調器。我在這裏閱讀了一些文章和問題,就像我必須使用AsyncTask等。但我想知道是否有更簡單的方法。也許像創建一些函數,這將顯示微調/ progressDailog,直到新的佈局加載。

如果你知道我想要什麼,你能告訴我,如果有可能嗎?謝謝

編輯:我有一個想法。我可以使用微調器創建佈局,這會覆蓋當前的佈局嗎?如果是,如何?

編輯兩個:的AsyncTask

private ProgressDialog progressDialog; 
    @Override 
    protected void onPreExecute(){ 
     progressDialog = new ProgressDialog(mContext); 
     progressDialog.setMessage("Loading..."); 
     progressDialog.setCancelable(false); 
     progressDialog.setIndeterminate(true); 
     progressDialog.show(); 
    } 

    // Some code here 

@Override 
    protected void onPostExecute(CustomAsyncTaskResult<User> result) { 
     progressDialog.dismiss(); 
     ((LoginActivity)mContext).getResult(result); 
    } 

回答

0

簡單的答案是 - 沒有,有沒有簡單的方法。如果要在加載活動時顯示微調器,則需要創建一個asynctask(或任何其他單獨的線程)。好消息是,您可以創建一個asynctask並在所有活動中重複使用它。壞的新的是你沒有別的選擇,只能修改你想添加微調器的每一個活動。

+0

好的,我用asynctask,進度對話框顯示,然後消失,但新的佈局顯示cca 5秒後。我該怎麼辦?代碼顯示在問題中。 – kristyna 2014-10-16 21:01:04

+0

@ user3808179原因是你必須在'doInBackground'方法中進行初始化。就目前來看,你的asynctask並沒有真正做任何事情。沒有一些嚴重的重構你就無法脫身 - 你必須改變初始化活動的方式,即在asynctask中進行大部分初始化。 – 2014-10-17 06:55:10

+0

抱歉誤解......有'doInBackgroud()'方法。但是這個方法也有一些代碼。這就是進度對話很快就會消失的原因嗎? – kristyna 2014-10-17 15:03:08

0

建議使用AsyncTask的原因是因爲ProgressBar否則會使用您不想執行的UI線程顯示,因爲它會阻止UI線程必須執行的其他操作。您需要將ProgressBar顯示委託給後臺線程。所以不,你不能這樣做。

相關問題