呼叫到服务器时,Andriod未显示进程辩论框



我是新手在这里问问题的新手,所以对此有任何建议...但是,我的问题: enter code here

我正在尝试在等待服务器的数据时显示进程拨号。但是在呼叫到服务器时显示黑屏从几天开始,我一直在这一点。

   public class ReceiptRegisterActivity extends AppCompatActivity   implements ReceiptRegisterPresenter.ReceiptRegisterPresenterListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
     setContentView(R.layout.activity_receipt_register);
        progressBar = new ProgressDialog(ReceiptRegisterActivity.this);
        progressBar.setCancelable(true);
        progressBar.setMessage("Fetching Data...");
        progressBar.setProgress(20);
        progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        progressBar.show();
        progressBarStatus = 0;
spinner = (SearchableSpinner)findViewById(R.id.spinner);
        editsearch = (android.widget.SearchView) findViewById(R.id.search);
        editsearch.setOnQueryTextListener(this);
        expandButton =(Button)findViewById(R.id.expandButton);
        byDate =(Button)findViewById(R.id.byDate);
        byCustomer=(Button)findViewById(R.id.byCustomer);
        byDate.setFocusable(false);
        allEventLIstener();
dbHelperObj=new DBHelper(this);
        try{
            dbHelperObj.createDB();
        }catch (Exception e){
            throw new  Error(e);
        }
        try{
            dbHelperObj.openDataBase();
        }catch (SQLiteException e){
            e.printStackTrace();
        }
        //srActivity = this;
        // progressBar = new ProgressBar(this);
        //   progressBar.setVisibility(View.VISIBLE);
       receptRegisterPresenterObj =  new ReceiptRegisterPresenter(this,this);
        receptRegisterPresenterObj.getReceiptRegisterData();
}
 public void receiptRegisterDataReady(Object obj) {

       /// Getting Response In This Block Doing Some Manupilation And Dismiss progressBar...      
        progressBar.dismiss();
    }`

感谢您的任何帮助

您在OnCreate主线程中做的工作太多。这就是为什么它冻结您的Android应用程序的原因。

在主线程中进行进度UI,因此:

 @Override
protected void onCreate(Bundle savedInstanceState) {
     setContentView(R.layout.activity_receipt_register);
   progressBar = new ProgressDialog(this, "title", "loading");
    heavywork();
}
   public void heavywork()
{
//start a new thread to process job
     new Thread(new Runnable() {  
         @Override  
         public void run() { 
             // Do all the Data From Server code here ! 
          }  
      }).start();
}

这可能会对您有所帮助:在单独的线程中的progressDialog

最新更新