о ProgressDialog и onResume()

#android #progressdialog #onresume

#Android #progressdialog #onresume

Вопрос:

У меня есть 2 страницы, и все, что я хочу, это если пользователь нажмет кнопку на первой странице, отобразится ProgressDialog и перейдет на вторую страницу, а если пользователь нажмет кнопку назад, чтобы вернуться к первой странице, он не отобразит ProgressDialog, поэтому я пытаюсь

 Btn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            dialog = ProgressDialog.show(MainActivity.this, "", 
                    "Loading. Please wait...", true);
            dialog.setMax(2);

            Intent statPage = new Intent(MainActivity.this, Statistic.class);
            startActivity(statPage);
        }
    }); 
public void onResume() {
    if (dialog.isShowing()) {
        dialog.dismiss();
     }
    super.onResume();
}
  

но он принудительно закрывает

 05-09 10:02:54.520: ERROR/AndroidRuntime(623): FATAL EXCEPTION: main
  

05-09 10:02:54.520: ОШИБКА / AndroidRuntime(623): исключение java.lang.RuntimeException: Не удается возобновить активность {android.test.cal/android.test.cal.MainActivity}: java.lang.Исключение NullPointerException
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): при android.app.ActivityThread.performResumeActivity(ActivityThread.java:3128)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime(623): в android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143): в android.app.ActivityThread.handleResumeActivity (ActivityThread.java)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): при android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2684)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): на android.app.ActivityThread.access $ 2300 (ActivityThread.java: 125)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): в android.app.ActivityThread$H.Обработкасообщения (ActivityThread.java: 2033)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime(623): в android.os.Handler.DispatchMessage (Обработчик.java:99)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): в android.os.Looper.loop (Looper.java:123)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): в android.app.ActivityThread.main (ActivityThread.java:4627)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime(623): в java.lang.reflect.Метод.вызывающий (собственный метод)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime(623): в java.lang.reflect.Метод.invoke(Method.java:521)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime(623): в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime(623): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime(623): в dalvik.system.NativeStart.main (собственный метод)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime(623): Вызвана: java.lang.Исключение NullPointerException
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): в android.test.cal.MainActivity.onResume(MainActivity.java:165)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): в android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): в android.app.Activity.performResume(Activity.java:3823)
05-09 10:02:54.520: ОШИБКА / AndroidRuntime (623): в android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)

пожалуйста, помогите

Ответ №1:

Пожалуйста, напишите код диалога выполнения в onPause вместо onResume . Когда вы вызываете другое действие из своего основного действия в то время, вызывается onPause, и оно закрывает диалоговое окно прогресса.