Как вы можете создать экран загрузки в Android? - PullRequest
5 голосов
/ 03 ноября 2011

Проблема в том, что я прихожу из другого действия, и когда я пытаюсь перейти к новому действию, оно просто сидит на старом, пока не отобразится новое, поэтому я пытаюсь заставить его перейти к новому Активность сразу же, а затем вызвать экран загрузки, пока он получает контент. (Контент поступает с веб-сайта или из внутренней базы данных).

Я попробовал progressDialog с сайта разработки Android, но он ничего не делает, так как Activity заканчивает загрузку, прежде чем что-то показывать, поэтому со временем он обнаруживает, что загружать нечего.

Ответы [ 2 ]

14 голосов
/ 03 ноября 2011

Сначала запустите новое действие, а затем вызовите файл асинхронной задачи. Это запустит новое действие, когда вы закроете старое.в Oncreate нового действия вызовите класс асинхронных задач, как показано ниже

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
            setContentView(your layout here);
            new GetTask(this).execute();

   }
}

class GetTask extends AsyncTask<Object, Void, String> {
    Context context;

    GetTask(Context context, String userid) {
        this.context = context;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        mDialog = new ProgressDialog(mContext);
        mDialog.setMessage("Please wait...");
        mDialog.show();
    }

    @Override
    protected String doInBackground(Object... params) {
        // here you can get the details from db or web and fetch it..
    }

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

        mDialog.dismiss();
    }
}
0 голосов
/ 03 ноября 2011

В качестве предложения попробуйте уменьшить код в методе onCreate второго действия.Пусть это будет так просто, как вызов super и настройка представлений контента.Это вызовет пользовательский интерфейс, разработанный в XML.

Переместите остальную часть кода в метод onResume.Следующий шаг, если у вас есть данные, которые нужно извлечь из БД или извне, попробуйте использовать thread (, как это сделать & что это такое ) или асинхронная задача .

...