Завершаются ли потоки в действии при запуске другого?


У меня есть действие, которое запускает 3 потока, которые делают Цикл "While (true)"

Когда я начинаю новое действие, заканчиваются ли сами эти потоки?

И еще один вопрос, как мне начать новую деятельность, но я не хочу позволять кнопка "назад", чтобы вернуть меня к прежнему занятию - на самом деле я хочу избавиться от первой активности и создать и показать новую

Спасибо Рон

2 2

2 ответа:

Когда я начинаю новое действие, заканчиваются ли сами эти потоки?

Нет, они не делают этого.вы должны остановить их, прежде чем закрыть свою деятельность.

Как начать новую деятельность, но я не хочу, чтобы кнопка "Назад" возвращала меня к старой деятельности

Просто вызовите finish () из вашего первого действия, когда вы начинаете второе:

Intent intent = new Intent(...);
startActivity(intent);
finish();

При приостановке или остановке активности потоки могут быть остановлены не сразу. Лучшая стратегия - иметь флаг, который устанавливается в false, как только вызывается onPause или stop. Потоки проверяют наличие этого флага и прерывают сами себя или выходят из метода run.

Если вы не хотите, чтобы кнопка назад показывала более старую активность, вы можете использовать флаг NO_HISTORY для более старой активности http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NO_HISTORY

Если вы хотите используйте это действие в качестве первого действия в стеке, используя этот флаг FLAG_ACTIVITY_TASK_ON_HOME