2016-06-02 4 views
1

私はsqliteデータベースからデータを読み込み、いくつかの計算を行い、アダプタでlistviewを使って提示するアプリケーションを持っています。ですから、この部分は準備が整っていて動作しています。データが十分に大きい場合、計算時間が長くなる可能性があります。リストのすべての要素が準備できなくなるまで、私のアクティビティは表示されないので、これは重要です。このため、私は最初にスプラッシュ画面を表示し、MainActivityのすべてのデータが準備できなくなるまで表示したいと思います。それについてのチュートリアルやアドバイスがあれば、私はそれを本当に賛美します。スプラッシュ画面を作成し、バックグラウンドでlistviewプロセスを実行する方法は?

しかし、私は、このMainActivityがlistViewを表示する責任を持つ別の情報を、アプリケーション全体の中心的な単位に追加する必要があります。アプリが起動された後に、このページが頻繁に開かれます。そのため、sqlite dbから新しいリストビュー項目を更新または作成するメソッドは、スプラッシュ画面アクティビティの外部で使用できる必要があります。

答えて

1
public class SplahActivity extends Activity { 

     public static final int Tick = 1000; 
     public static final int Complete = 5000; 
     ArrayList<String> data; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_splash); 

      data = new ArrayList<>(); 
      AsyncTaskRunner runner = new AsyncTaskRunner(); 
      String sleepTime = time.getText().toString(); 
      runner.execute(sleepTime); 

     } 

     private class AsyncTaskRunner extends AsyncTask<String, String, String> { 

      private String resp; 
      @Override 
      protected void onPreExecute() { 
       // Things to be done before execution of long running operation. For 
       // example showing ProgessDialog 
      } 

      @Override 
      protected String doInBackground(String... params) { 

       // data and save it in array 
       // data = Reveice data from db 
       return resp; 
      } 
      @Override 
      protected void onPostExecute(String result) { 
       // execution of result of Long time consuming operation 

       Intent i = new Intent(ActivityName.this,SecondScreen.class); 
       startActivity(i); 
      } 
     } 
    } 
関連する問題