да, есть простой шаблон для этого. Вы запускаете свою ветку в onResume()
, а останавливаете ее в onPause()
.
в вашем потоке работает, у вас есть цикл, как,
@Override
public void run() {
while (mRunning) {
// re-try server
}
}
в вашей активности переопределяет onResume () как,
@Override
protected void onResume() {
super.onResume();
mRunner = new Runnable { .... );
new Thread(mRunner).start();
}
переопределить onPause (), чтобы остановить поток,
@Override
protected void onPause() {
super.onPause();
if (mRunner != null) {
mRunner.setRunning(false);
mRunner = null;
}
}
это, конечно, останавливает цикл, run()
выходит, и поток завершается.
В общем, вы следуете этому шаблону для любого слушателя, которого вы регистрируете или запускаете. установите его на onResume()
, и сверните на onPause()
.