0
在我的android應用程序中,我必須在第一次運行時通過在線服務器加載數據。但是在啓動屏幕之後,加載欄應該以黑色背景顯示。但是當我在做時,它會顯示進度條背後的內容。我想要的只是顯示進度條(帶有黑色背景),直到數據被下載。Android:AsyncTask和get()的結合
這裏是我的mainactivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
task myTask = new task();
myTask.execute();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//other code
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class task extends AsyncTask<String, Integer, String> {
private ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog=new ProgressDialog(MainActivity.this, android.R.style.Theme_Translucent_NoTitleBar);
progressDialog.setMessage("Loading...");
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
try {
Thread.sleep(20000);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if(progressDialog!=null)
progressDialog.dismiss();
}
}
}
那麼的代碼,而複製粘貼一些支架可以出了錯。
但是請放心,代碼運行良好,問題是背景隨加載屏幕一起加載。我已經瞭解get()方法來停止正在加載的進程。但是這也阻止了加載欄的視圖。
請幫忙。或者有其他方法建議嗎?
謝謝!儘管我嘗試過..但是我想我弄亂了我的drawables,在將setcontentview移動到postexecute時給我一個錯誤。只是重新制作了一個新的應用程序n測試。作品完美。要再做一次整潔的項目! :) –