Использование AsyncTask для запуска активности

Я использую asyncTask для отображения диалогового окна, а затем через несколько минут запускаю новое действие.

К сожалению, эта активность начинается до завершения задачи ???

package com.android.grad; import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.widget.Toast; public class LoginTask extends AsyncTask<Void, Void, Boolean> { private Activity activity; private ProgressDialog pd; public LoginTask(Activity activity) { this.activity = activity; } @Override protected void onPreExecute() { pd = ProgressDialog.show(activity, "Signing in", "Please wait while we are signing you in.."); } @Override protected Boolean doInBackground(Void... arg0) { try { Thread.sleep(10000000); } catch (InterruptedException e) { } pd.dismiss(); return true; } @Override protected void onPostExecute(Boolean result) { Toast.makeText(activity, Boolean.toString(result), Toast.LENGTH_LONG).show(); } 

}

И я выполняю задачу из кнопки:

 private OnClickListener loginOnClick = new OnClickListener() { public void onClick(View v) { new LoginTask(LoginActivity.this).execute(); startActivity(new Intent(LoginActivity.this, BuiltInCamera.class)); } }; 

Есть ли способ startActivity из моего subClass ofAsyncTask.

Да, вы можете начать работу с подкласса AsyncTask. Смотри ниже:

 @Override protected void onPostExecute(Boolean result) { Toast.makeText(activity, Boolean.toString(result), Toast.LENGTH_LONG).show(); activity.startActivity(new Intent(activity, BuiltInCamera.class)); } 

После внесения этого изменения убедитесь, что вы удалили startActivity из OnClickListener

Назовите эту startActivity(new Intent(LoginActivity.this, BuiltInCamera.class)); onPostExecute() после отображения сообщения тоста.

Таким образом, после AsyncTask будет вызвана новая активность.

Вы также можете использовать

  Intent intent = new Intent(activity, PageViewActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); activity.getApplicationContext().startActivity(intent); 

Вызов startActivity внутри метода AsyncTask

Intereting Posts
Как запустить приложение Android в фоновом режиме? Как изменить размер элементов в Spinner с несколькими вариантами выбора? Измените значок поиска на панели действий. Панель действия Overlay, закрытая статусной строкой Как приложение «SHAREit» андроида работает технически? Android retofit + rxjava, как обрабатывать динамический параметр запроса с помощью repeatwhen Как предотвратить восстановление фрагментов при выборе из NavigationDrawer? Как изменить стиль текста в преференциальном фрагменте Android: ошибка в пути сборки Индивидуальный межстрочный интервал для каждой линии Не удалось отладить с помощью gdb под Android и NDK, запуская приложение Gdb crashes Ионная / кордовая судо-ионная платформа добавляет андроид не работает Как я могу получать уведомления от GCM, когда приложение остановлено Android: можно установить высоту SlidingDrawer с помощью wrap_content? Изменение имени устройства Bluetooth Bluetooth