Поток умирает, когда активность завершена?

Если я запущу фоновый поток, что произойдет, если действие, начатое из Finishes() до завершения потока. Будет ли поток также прерван или останется в живых?

 new Thread(new Runnable() {
                public void run() {
                    while (mProgressStatus > 0) {


                        // Update the progress bar
                        mHandler.post(new Runnable() {
                            public void run() {
                                progressbar.setProgress(mProgressStatus);
                            }
                        });
                    }
                }
            }).start();

person Jake    schedule 29.04.2013    source источник
comment
Поток не умрет, и вы сгенерируете утечку памяти.   -  person Luiggi Mendoza    schedule 29.04.2013
comment
Аналогичный вопрос задан здесь: ]" title="что происходит с потоком Android после того, как действие, которое его создало, уничтожено%5d"> stackoverflow.com/questions/6208443/   -  person Martin    schedule 08.04.2016


Ответы (2)


Потоки запускаются независимо от своих родителей. Поток умирает, когда он возвращается из Thread.run() обратно в JVM в обычном режиме или из-за неперехваченного исключения.

person Evgeniy Dorofeev    schedule 29.04.2013

Для того, что вы знаете, ваш поток/приложение может умереть в любой момент, в любое время, телефон падает на землю и батарея выключена, и последнее, что вы знаете, это телефон, который выключается самым быстрым способом.

Жизненный цикл Android и его управление сложны, и нет реального ответа, потому что в Google, комментируя такого рода вещи, им очень нравится слово «автомагический», поэтому они, конечно, не раскрывают никаких внутренних деталей об этом, по крайней мере не на "простом старом английском".

Есть первый Google IO об Android, в котором говорится об этом, вы можете вернуться на YouTube и поискать в Google IO, рассказывающем о жизненном цикле Android, если вы хотите получить более подробную информацию об этом.

В любом случае имейте в виду, что Android абсолютно ничего не дает вам о том, как и как долго будет жить ваше приложение, и вам нужно учитывать как минимум переменные: что делает ОС (Android) и что делает пользователь, и эти 2 вещи могут даже смешивать вместе, когда пользователь вводит данные, связанные с жизнью вашего приложения, которое Android должен обрабатывать.

person user2311177    schedule 29.04.2013