У меня есть кнопка START и STOP на главном экране приложения. есть некоторые GUI и потоки, которые создаются при нажатии кнопки START. Когда я нажимаю на остановку, я хочу, чтобы все было остановлено, и действие должно вернуться к исходному состоянию. Для состояния, которое точно так же, как при запуске (когда мы нажали на значок приложения на мобильном телефоне). Можно ли это сделать? Я попытался с финишем(), это убило приложение и вышло. Я не хочу выходить с главного экрана. Скорее, при нажатии кнопки STOP я хочу, чтобы приложение возвращалось к исходному или рожденному состоянию. Благодарю.остановить или обновить активность приложения
ответ
Как вы управляете своими темами? Являются ли они ванильными нитями или подклассами AsyncTask?
Если это экземпляры AsyncTask
объекта, вы можете использовать метод cancel()
, чтобы отменить его, а затем внутри ваш метод doInBackground()
, вы можете проверить метод isCancelled()
, чтобы увидеть, если он действительно был отменен, а затем выйти из грациозно.
код Псевдо ниже:
private YourTask taskRef;
public void btnStartHandler() {
taskRef = new YourTask();
taskRef.execute();
}
public void btnStopHandler() {
taskRef.cancel();
}
, а затем, в вашем AsyncTask:
public Void doInBackground(Void... arg0) {
// Background loop start
if (this.isCancelled()) {
return;
}
// Background loop continue...
}
Если вы используете темы, вы можете прервать их и поймать исключение и обработать его там. Кроме того, вы можете создать метод, который вы вызываете от onCreate()
под названием initApp()
или что-то, что инициализирует все. Вы также можете использовать этот initApp()
с помощью обработчика щелчка кнопки STOP, чтобы вернуть значения к значениям по умолчанию для запуска.
Вы можете перезапустить мероприятие с помощью finish()
, а затем позвонить по телефону startActivity(getIntent());
. Это эффективно перезапустит вашу деятельность и поместит ее в состояние по умолчанию, независимо от того, как она была запущена.
Перед выполнением этого обязательно отмените все потоки или AsyncTasks в соответствии с предложением TJF (вы можете и должны делать это в перегрузке onDestroy
).
Для получения дополнительной информации о перезапуске деятельности и дискуссии о преимуществах и недостатках см этого вопрос: Reload activity in Android
- 1. Обновить ListView или активность?
- 2. Как обновить активность TabHost?
- 3. Невозможно остановить активность android
- 4. Обновить вид или активность на android
- 5. Обновить фрагмент/активность (или recyclerview) от адаптера
- 6. android: Невозможно остановить активность
- 7. Остановить активность на таймауте
- 8. Обновить начальную активность?
- 9. Остановить все события после того, как фрагмент или активность остановлены.
- 10. Android - Как обновить активность
- 11. Обновить активность и снова открыть
- 12. Активность замедление приложения
- 13. Android: Фрагменты или активность для моего приложения?
- 14. Как обновить активность?
- 15. закончить активность() обновить ListActiviyt
- 16. Обновить активность в Android
- 17. Как остановить активность в андроида
- 18. Как остановить активность в Android?
- 19. Остановить или убить службу
- 20. Обновить активность, когда Интернет наступает
- 21. Обновить активность после поворота экрана
- 22. Обновить активность без повторного открытия?
- 23. Обновить активность на вкладке изменено
- 24. Обновить текущую активность в Xamarin
- 25. Обновить текущую активность без задержки
- 26. Обновить активность на кнопке назад
- 27. BaseActivity или фрагмент активность
- 28. Android - Остановить все темы, когда уходит активность
- 29. Активность приложения в Google
- 30. Закрыв активность другого приложения
это было не то, что я искал, нет такого initapp() либо. –
Если вы обратите внимание, я предложил вам создать этот метод и вызвать его из 'onCreate()'. Немного больше информации о том, что вы делаете, несомненно, будет полезно для получения ответа, который вы ищете. – TJF
+1 Чтобы компенсировать, кто бы ни подавил этот информативный ответ. – hpique