Aktywność wyciekło okno, które zostało pierwotnie dodane

Czym jest ten błąd i dlaczego się on zdarza?

05-17 18:24:57.069: ERROR/WindowManager(18850): Activity com.mypkg.myP has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44c46ff0 that was originally added here
05-17 18:24:57.069: ERROR/WindowManager(18850): android.view.WindowLeaked: Activity ccom.mypkg.myP has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44c46ff0 that was originally added here
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.view.ViewRoot.<init>(ViewRoot.java:231)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.app.Dialog.show(Dialog.java:239)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at com.mypkg.myP$PreparePairingLinkageData.onPreExecute(viewP.java:183)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.os.AsyncTask.execute(AsyncTask.java:391)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at com.mypkg.myP.onCreate(viewP.java:94)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.app.ActivityThread.access$2200(ActivityThread.java:126)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.os.Looper.loop(Looper.java:123)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at android.app.ActivityThread.main(ActivityThread.java:4595)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at java.lang.reflect.Method.invokeNative(Native Method)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at java.lang.reflect.Method.invoke(Method.java:521)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-17 18:24:57.069: ERROR/WindowManager(18850):     at dalvik.system.NativeStart.main(Native Method)
Author: MiguelHincapieC, 2010-05-17

30 answers

Próbujesz wyświetlić okno dialogowe po zakończeniu aktywności.

[EDIT]

To pytanie jest jednym z najlepszych wyszukiwarek w google dla programistów Androida, dlatego dodanie kilku ważnych punktów z komentarzy, które mogą być bardziej pomocne dla przyszłego badacza bez pogłębiania rozmowy komentarza.

Odpowiedź 1 :

Próbujesz wyświetlić okno dialogowe po zakończeniu aktywności.

Odpowiedź 2

Ten błąd może być w pewnych okolicznościach nieco mylący (chociaż odpowiedź jest nadal całkowicie poprawna) - tj. w moim przypadku nieobsługiwany wyjątek został wrzucony do Asynktasku, co spowodowało Aktywność do wyłączenia, a następnie otwarty progresdialog spowodował to Wyjątek.. tak więc' prawdziwy ' wyjątek był nieco wcześniej w dzienniku

Odpowiedź 3

Wywołanie Closure() na wystąpieniu okna dialogowego, które utworzyłeś przed zakończeniem Działalność, np. w onpause () lub onDestroy ()

 1302
Author: Alex Volovoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-21 13:46:21

Rozwiązaniem jest wywołanie dismiss() Na Dialog utworzonym w viewP.java:183 przed zakończeniem Activity, np. w onPause(). Wszystkie Windows&Dialogs powinny być zamknięte przed opuszczeniem Activity.

 373
Author: Márton Molnár,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-15 15:11:51

Jeśli używasz AsyncTask, prawdopodobnie ta wiadomość dziennika może być zwodnicza. Jeśli zajrzysz do logu, możesz znaleźć inny błąd, prawdopodobnie jeden w Twojej metodzie doInBackground() twojego AsyncTask, który powoduje, że Twój bieżący Activity wybuchnie, a zatem gdy AsyncTask wróci.. resztę znasz. Niektórzy inni użytkownicy już wyjaśnili to tutaj: -)

 102
Author: ggomeze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-28 18:18:23

Możesz uzyskać ten wyjątek poprzez zwykły / głupi błąd, na przykład przypadkowo wywołując finish() Po wyświetleniu AlertDialog, jeśli pominiesz instrukcję break call w instrukcji switch...

   @Override
   public void onClick(View v) {
    switch (v.getId()) {
        case R.id.new_button:
            openMyAlertDialog();
            break; <-- If you forget this the finish() method below 
                       will be called while the dialog is showing!
        case R.id.exit_button:
            finish();
            break;
        }
    }

Metoda finish() zamknie Activity, ale AlertDialog nadal jest wyświetlana!

Więc kiedy uważnie wpatrujesz się w kod, szukasz złych problemów z wątkiem lub skomplikowanego kodowania i tym podobnych, nie trać z oczu lasu dla drzew. Czasami może to być po prostu coś jak proste i głupie jak brakujące oświadczenie. :)

 52
Author: Adrian Romanelli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-20 16:12:10

Wywołałem ten błąd przez omyłkowe wywołanie hide() zamiast dismiss() na AlertDialog.

 50
Author: Mark Phillip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-28 18:06:46

Ten problem pojawia się podczas próby wyświetlenia okna dialogowego po zakończeniu aktywności.

Właśnie rozwiązałem ten problem, zapisując następujący kod:

@Override
public void onDestroy(){
    super.onDestroy();
    if ( progressDialog!=null && progressDialog.isShowing() ){
        progressDialog.cancel();
    }
}

Zasadniczo, od której klasy uruchomiłeś progressDialog, nadpisuj metodę onDestroy i zrób to w ten sposób. Rozwiązał problem "aktywność wyciekło okno".

 27
Author: Shoaib Ahmed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-27 10:11:59

Ostatnio spotkałem się z tym samym problemem.

Powodem tego problemu jest to, że aktywność jest zamykana przed odrzuceniem okna dialogowego. Istnieje wiele powodów, dla których powyższe się dzieje. Te wymienione w powyższych postach również są poprawne.

Wpadłem w pewną sytuację, ponieważ w wątku wywoływałem funkcję rzucającą wyjątek. Z powodu którego okno zostało odrzucone, a co za tym idzie wyjątek.

 19
Author: Tushar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-08 21:12:58

Odpowiedzi na to pytanie były poprawne, ale trochę mylące dla mnie, aby właściwie zrozumieć dlaczego. Po zabawie przez około 2 godziny przyczyna tego błędu (w moim przypadku) mnie uderzyła:

Już wiesz, czytając inne odpowiedzi, że błąd X has leaked window DecorView@d9e6131[] oznacza, że okno dialogowe zostało otwarte po zamknięciu aplikacji. Ale dlaczego?

Możliwe, że aplikacja zawiesiła się z innego powodu, gdy okno dialogowe było otwarte

To prowadzi do zamknięcia aplikacji z powodu niektórych błąd w kodzie, który powoduje, że okno dialogowe pozostaje otwarte w tym samym czasie, gdy aplikacja jest zamknięta z powodu innego błędu.

Więc, spójrz przez swoje logiczne. Rozwiąż pierwszy błąd, a następnie drugi błąd rozwiąże się samTutaj wpisz opis obrazka

Jeden błąd powoduje inny, co powoduje inny, jak Domino!

 13
Author: Ruchir Baronia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-27 00:31:28

Miałem ten sam niejasny komunikat o błędzie i nie miałem pojęcia dlaczego. Biorąc pod uwagę wskazówki z poprzednich odpowiedzi, zmieniłem moje połączenia nie-GUI do mDialog.finish() to be mDialog.Odrzuć () i błędy zniknęły. To nie miało wpływu na zachowanie mojego widgetu, ale było niepokojące i mogło być oznaczanie ważnego wycieku pamięci.

 11
Author: Melinda Green,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-27 05:49:55

[7]}otrzymywałem te logi w mojej aplikacji odtwarzacza wideo. Te wiadomości zostały rzucone, gdy odtwarzacz wideo był zamknięty. Co ciekawe, kiedyś dostawałem te dzienniki raz w kilku biegach w sposób losowy. Również moja aplikacja nie obejmuje żadnego progressdialog. Wreszcie obejrzałem ten problem z poniższą implementacją.

@Override
protected void onPause()
{
    Log.v("MediaVideo", "onPause");
    super.onPause();
    this.mVideoView.pause();
    this.mVideoView.setVisibility(View.GONE);
}

@Override
protected void onDestroy()
{
    Log.v("MediaVideo", "onDestroy");
    super.onDestroy();
}

@Override
protected void onResume()
{
    Log.v("MediaVideo", "onResume");
    super.onResume();
    this.mVideoView.resume();
}

Nadpisuje OnPause wywołaniem do mVideoView.pause() i zestawem visibility do GONE. W ten sposób mogłem rozwiązać problem z logiem" Activity has leaked window".

 11
Author: InvisiblePoint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-18 12:36:20

Zamknij okno dialogowe, gdy aktywność zniszczy

@Override
protected void onDestroy()
{
    super.onDestroy();
    if (pDialog!=null && pDialog.isShowing()){
        pDialog.dismiss();
    }
}
 10
Author: Muhammad Aamir Ali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-27 11:56:10

Miałem ten sam problem i znalazłem tę stronę, a gdy Moja sytuacja była inna, zadzwoniłem finish z bloku if, zanim zdefiniował pole alertu.

Po przeczytaniu odpowiedzi Alexa Volovoy ' a i uświadomieniu sobie, że to Skrzynka alarmowa jest przyczyną. Próbowałem dodać instrukcję return zaraz po zakończeniu wewnątrz if bloku i to naprawiło problem.

Myślałem, że jak już zadzwonisz, dokończ to. wszystko się zatrzymało i skończyło, ale tak nie jest. wygląda na to, że przechodzi do końca bloku kodu, w którym jest, a następnie kończy się.

Więc, jeśli chcesz zaimplementować sytuację, w której czasami kończy się przed wykonaniem kodu, musisz umieścić instrukcję return zaraz po zakończeniu, albo będzie ona działać dalej i działać tak, jakby zakończenie zostało wywołane na końcu bloku kodu, a nie tam, gdzie go wywołałeś. Dlatego dostaję te wszystkie dziwne błędy.

private picked(File aDirectory){
     if(aDirectory.length()==0){
        setResult(RESULT_CANCELED, new Intent()); 
        finish(); 
        return;
    }
     AlertDialog.Builder alert= new AlertDialog.Builder(this); // Start dialog builder
     alert
        .setTitle("Question")
        .setMessage("Do you want to open that file?"+aDirectory.getName());
    alert
        .setPositiveButton("OK", okButtonListener)
        .setNegativeButton("Cancel", cancelButtonListener);
    alert.show();
}

If you don ' t put powrót zaraz po wywołaniu finish, będzie działał tak, jakbyś wywołał go po alert.show();, a zatem powiedziałby, że okno wyciekło po zakończeniu tuż po tym, jak pojawi się okno dialogowe, mimo że tak nie jest, nadal myśli, że tak jest.

Pomyślałem, że dodam to tak, jak to pokazuje, że komenda finish działała inaczej, niż myślałem i domyślam się, że są inni ludzie, którzy myślą tak samo, jak ja, zanim to odkryłem.

 10
Author: Kit Ramos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-15 19:09:11

To może pomóc.

if (! isFinishing()) {

    dialog.show();

    }
 9
Author: sandy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-26 09:47:30

To nie jest odpowiedź na pytanie, ale jest istotne dla tematu.

Jeśli działanie ma zdefiniowany atrybut w manifeście

 android:noHistory="true"

Następnie po wykonaniu onpause(), kontekst działania jest tracony. Więc cały widok używa tego kontekstu może spowodować ten błąd.

 7
Author: Killer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-09 14:25:52

Nie tylko spróbuj pokazać alert, ale można go również wywołać po zakończeniu określonej instancji aktywności i spróbować rozpocząć nową aktywność / usługę lub spróbować ją zatrzymać.

Przykład:

OldActivity instance;

    oncreate() {
       instance=this;
    }
    instance.finish();
    instance.startActivity(new Intent(ACTION_MAIN).setClass(instance, NewActivity.class));
 6
Author: Kulbhushan Chaskar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-16 01:36:01

Wypróbuj ten kod:

public class Sample extends Activity(){
@Override
 public void onCreate(Bundle instance){

}
 @Override
    public void onStop() {
        super.onStop();
      progressdialog.dismiss(); // try this
    }

}
 5
Author: tinku,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-10 11:17:11

Może to być, jeśli masz błąd w funkcji doInBackground() i masz ten kod.

Spróbuj dodać okno dialogowe w końcu. Na początku sprawdź i napraw doInBackground() Funkcja

protected void onPreExecute() {
     super.onPreExecute();
     pDialog = new ProgressDialog(CreateAccount.this);
     pDialog.setMessage("Creating Product..");
     pDialog.setIndeterminate(false);
     pDialog.setCancelable(true);
     pDialog.show();

 }

 protected String doInBackground(String...args) {
     ERROR CAN BE IS HERE
 }

 protected void onPostExecute(String file_url) {
     // dismiss the dialog once done
     pDialog.dismiss();
 5
Author: NickUnuchek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-20 07:49:42

Przydarzyło mi się to, gdy używam ProgressDialog w AsyncTask. Właściwie używam metody hide() w onPostExecute. Na podstawie odpowiedzi @Alex Volovoy muszę użyć dismiss() z ProgressDialog, Aby usunąć go w onPostExecute i zrobić to.

progressDialog.hide(); // Don't use it, it gives error

progressDialog.dismiss(); // Use it
 5
Author: SANAT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-19 05:29:50

Błąd" Activity has leaked window that was originally added... " występuje, gdy próbujesz wyświetlić alert po tym, jak Activity jest skutecznie finished.

Masz dwie opcje AFAIK:

  1. Przemyśl login swojego alertu: zadzwoń {[3] } na dialog przed zakończeniem aktywności.
  2. umieść dialog w innym wątku i uruchom go na tym thread (niezależnie od bieżącego activity).
 5
Author: Kyle Clegg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-18 13:13:30

Miałem problem, w którym skończyłem działanie, gdy ProgressDialog był nadal wyświetlany.

Więc najpierw Ukryj okno dialogowe, a następnie zakończ działanie.

 4
Author: LeonS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-06 06:36:11

Musisz zrobić Progressdialog obiekt w onPreExecute metodzie AsyncTask i powinieneś dismiss to na onPostExecute metodzie.

 4
Author: ammad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-18 12:36:50

Ogólnie ten problem występuje w oknie dialogowym postępu : możesz rozwiązać go za pomocą jednej z następujących metod w swoim działaniu:

 // 1):
          @Override
                protected void onPause() {
                    super.onPause();
                    if ( yourProgressDialog!=null && yourProgressDialog.isShowing() )
                  {
                        yourProgressDialog.cancel();
                    }
                }

       // 2) :
         @Override
            protected void onDestroy() {
                super.onDestroy();
                if ( yourProgressDialog!=null && yourProgressDialog.isShowing()
               {
                    yourProgressDialog.cancel();
                }
            }
 4
Author: Bapusaheb Shinde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-16 04:31:34

W moim przypadku powodem było to, że zapomniałem dołączyć pozwolenie do pliku manifestu Androida.

Jak się dowiedziałem? Cóż, tak jak mówi @Bobby w komentarzu pod zaakceptowaną odpowiedzią, po prostu przewiń dalej do swoich dzienników, a zobaczysz pierwszy powód lub zdarzenie, które naprawdę rzuciło wyjątek. Najwyraźniej komunikat "aktywność wyciekło okno, które zostało pierwotnie dodane" jest tylko wyjątkiem wynikającym z pierwszego wyjątku.

 3
Author: Matt Quiros,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-08 17:05:06

Najlepszym rozwiązaniem jest po prostu dodać okno dialogowe w spróbuj złapać i zamknąć okno dialogowe, gdy wystąpi wyjątek

Wystarczy użyć poniższego kodu

 try {
        dialog.show();
    } catch (Exception e) {
        dialog.dismiss();
    }
 3
Author: Ness Tyagi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-01 09:56:29

Wypróbuj poniższy kod, będzie działał w każdej chwili, gdy zamkniesz dialog postępu i zobaczy, czy jego instancja jest dostępna, czy nie.

try {
        if (null != progressDialog && progressDialog.isShowing()) {
            progressDialog.dismiss();
            progressDialog = null;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
 2
Author: Developer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-14 06:16:16

Wyjątki od okna mają dwa powody:

1) wyświetlanie okna dialogowego gdy kontekst aktywności nie istnieje, aby rozwiązać ten problem, powinieneś pokazać okno dialogowe tylko jesteś pewien, że aktywność istnieje:

if(getActivity()!= null && !getActivity().isFinishing()){
        Dialog.show();
}

2) nie należy odpowiednio zamykać okna dialogowego, aby rozwiązać użyj tego kodu:

@Override
public void onDestroy(){
    super.onDestroy();
    if ( Dialog!=null && Dialog.isShowing() ){
        Dialog.dismiss();
}
}
 2
Author: Sherry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-17 20:09:50

Najlepszym rozwiązaniem jest umieścić to przed pokazaniem progressbar lub progressDialog

if (getApplicationContext().getWindow().getDecorView().isShown()) {

  //Show Your Progress Dialog

}
 2
Author: Ali Akram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-29 06:45:41

Po prostu upewnij się, że Twoja aktywność nie zamyka się nieoczekiwanie z powodu pewnych wyjątków podniesionych gdzieś w kodzie. Zwykle dzieje się to w zadaniu asynchronicznym, gdy aktywność napotyka zamknięcie wymuszone w metodzie doinBackground, a następnie AsyncTask powraca do metody onPostexecute.

 1
Author: Manas Ranjan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-16 09:26:37
  if (mActivity != null && !mActivity.isFinishing() && mProgressDialog != null && mProgressDialog.isShowing()) {
        mProgressDialog.dismiss();
    }
 1
Author: androidmalin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-27 14:17:13

Problem według mnie jest to, że próbujesz wywołać okno dialogowe zaraz po zakończeniu działania, więc według mnie, co możesz zrobić, to dać jakieś opóźnienie za pomocą Handlera i problem zostanie rozwiązany na przykład:

 Handler handler=new Handler();
     handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                     dialog.show();
                     //or
                     dialog.dismiss();

                }
            },100);
 1
Author: Satish Silveri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-08 07:24:25