2017-02-25 16 views
0

へ行く間、私はそれについて何かアドバイスが理解されるであろうので、ここで質問をするに新たなんだ...しかし、私の問題にプロセスDialagueボックスが表示されない:enter code hereのAndriodは、コールがサーバー

私はプロセスDialagueを表示しようとしていますサーバからのデータを待っている間に、私はサーバからのデータを取得し、MVPパターンをプロジェクトで使用しています。 しかし、コールがサーバーに送られている間に黒い画面が表示され、レスポンスを取得した直後にコンテンツをロードします。 I Am Stuck数日からこの地点..任意の彼のために

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(); 

    }` 

感謝lp

+0

'onCreate'に建てられたものの、画面は実際にそこに表示されていません。 'onCreate'は後で完了するためにアクションをキューに入れます。 'onCreate'を可能な限り早く終了させる必要があります。長い実行中の処理を 'onResume'のような別のライフサイクルコールバックに移動し、' onCreate'でハングアップしないでください。これがあなたの問題なのかどうかは分かりませんが、それが助けてくれることを願っています – Cheticamp

答えて

0

あなたは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 in a separate thread

関連する問題