【发布时间】:2013-08-02 13:08:22
【问题描述】:
这里是新秀安卓开发者。我在 AsyncTask 中遇到了一些 ProgressDialog 的问题。
我想在创建 ProgressDialog 时应用一个主题,但是当我应用它时,对话框只是全屏显示并且我的活动被隐藏了。当我在实例化时删除主题,这是正常的。
我只是想知道为什么。
这是我的 AsyncTask 课程:
公共类同步{
private static AppManager app = AppManager.getInstance();
public void Synchronise() {
}
AsyncTask<Void, Void, Boolean> task = new AsyncTask<Void, Void, Boolean>() {
private ProgressDialog pd;
@Override
protected void onPreExecute() {;
pd = new ProgressDialog(app.m_AppContext, android.R.style.Theme_Black);
pd.setTitle("Veulliez patienter");
pd.setMessage("Synchronisation en cours...");
pd.setCancelable(false);
pd.setIndeterminate(true);
pd.show();
}
@Override
protected Boolean doInBackground(Void... arg0) {
try {
//Synchronisation
Thread.sleep(2000);
Log.d("DEBUG","sync en cours");
} catch (InterruptedException e) {
e.printStackTrace();
return false;
}
return true;
}
@Override
protected void onPostExecute(Boolean result) {
pd.dismiss();
if (result)
Toast.makeText(app.m_AppContext, "Synchronisation terminé avec succès", Toast.LENGTH_SHORT).show();
else
Toast.makeText(app.m_AppContext, "La synchronisation a échoué", Toast.LENGTH_SHORT).show();
Log.d("DEBUG","SYNC DONE");
}
};
public void startSync() {
if (app.m_bIsOnline)
task.execute((Void[])null);
else
Toast.makeText(app.m_AppContext, "Mode offline. Synchronisation impossible", Toast.LENGTH_SHORT).show();
}
}
感谢您的帮助。
【问题讨论】:
-
尝试设置不同的主题。
android.R.style.Theme_Black是variant on Theme that ensures the background is completely black. -
我尝试了很多主题,例如
android.R.style.Widget_Holo_Light_ProgressBar_Small。它不起作用:( -
试试
pd = new ProgressDialog(this, R.style.Theme_Black);。 -
我无法使用
this,因为我的 AsyncTask 不在 Activity 中。我用全班同学更新了我的问题。并且 R.style.Them_Black 也没有定义。
标签: android themes fullscreen progressdialog