2016-12-24 1 views
0

У меня есть два вида деятельности: один начинается с Intent. Активность ребенка имеет большую работу в onCreate. Первое действие - только для загрузки. Когда я начинаю работу с детьми, я жду на черном экране после завершения загрузки.Переключиться на активность после того, как он готов с onCreate

Как ждать на первом занятии и переключиться после на второй, когда он завершает создание (некоторые слушателя или обратного вызова?)

+0

Nevermind, найденное решение здесь: http://stackoverflow.com/a/18270154/1529552 – pfoof

ответ

0

Вы должны использовать AsyncTask.

Попробуйте этот код

public class MainActivity extends Activity 
{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 


     // call your long task from here 
     doWork(); 
    } 

    // write this method in your First Activity 
    private void doWork() 
    { 

     new AsyncTask<Void, Void, String>() 
     { 

      ProgressDialog progressDialog; 

      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       progressDialog = new ProgressDialog(MainActivity.this); 
       progressDialog.setMessage("Loading..."); 
       progressDialog.show(); 
      } 

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

       // do your long task here 

       // And return your result to the onPostExecute method. 
       return null; 
      } 

      @Override 
      protected void onPostExecute(String s) { 
       super.onPostExecute(s); 

       // after finishing your task dismis your dialog. 
       progressDialog.dismiss(); 

       // And go to your next Activity. 

       Intent intent = new Intent(MainActivity.this, NextActivity.class); 
       startActivity(intent); 
      } 
     }.execute(); 

    } 
} 
+1

Или просто нить;) – pfoof

+0

Да, вы можете также использовать тему :) –

Смежные вопросы