Как приостановить / возобновить поток в Android?

У меня есть поток, выполняющий действие. Я не хочу , чтобы поток продолжал работать, когда пользователь нажимает кнопку «Домой» или, например, пользователь получает телефонный звонок. Поэтому я хочу приостановить поток и возобновить его, когда пользователь повторно откроет приложение. Я пробовал вот что:

protected void onPause() {
  synchronized (thread) {
    try {
      thread.wait();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
  super.onPause();
}
protected void onResume() {
  thread.notify();
  super.onResume();
}

Он останавливает поток, но не возобновляет его, поток кажется зависшим.

Я также пробовал использовать устаревший метод Thread.suspend () и Thread.resume () , но в этом случае в Activity.onPause () поток не останавливается.

Кто-нибудь знает решение?

32
задан Michele 21 July 2011 в 12:52
поделиться