在我的Android应用程序中,我必须首先通过在线服务器加载数据。但是在启动画面后,加载栏应该以黑色背景显示。但是当我这样做时,它会显示进度条背后的内容。我想要的只是显示进度条(黑色背景),直到下载数据。
这是我的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()方法来停止正在加载的进程。但这也阻止了加载栏的观点。
请帮忙。或者任何其他方式的建议?
答案 0 :(得分:1)
从setContentView()
移除onCreate()
,并将其放在onPostExecute()
的最后。