2013-03-11 3 views
3

Возможно ли возобновить прерванный Thread в Android?Резюме по прерванной теме

+0

Afik это не представляется возможным, то необходимо перезапустить поток. – rekire

+0

@rekire Как перезапустить его? – NullPointer

+0

Позвоните в первый раз. Но вы должны заметить, что старые состояния не будут восстановлены. – rekire

ответ

2

Вы не должны возобновлять Thread by its API, resume() метод разрознен (reason).

Вы можете имитировать возобновлять тему, убивая его и начать новую:

/** 
Since Thread can't be paused we have to simulate pausing. 
We will create and start a new thread instead. 
*/ 
public class ThreadManager 
{ 
    private static GameThread gameThread = new GameThread(); 

    public static void setRunning(boolean isRunning) 
    { 
     if (isRunning) 
     { 
      gameThread = new GameThread(); 
      gameThread.setRunning(true); 
      gameThread.start(); 
     } 
     else 
     { 
      gameThread.setRunning(false); 
     } 
    } 

    public static boolean isRunning() 
    { 
     return gameThread.isRunning(); 
    } 

    public static void join() throws InterruptedException 
    { 
     gameThread.join(); 
    } 
} 
+0

И процедура замены? – NullPointer

+0

В этом случае я не могу восстановить старые состояния потока! – NullPointer

+0

Итак, вы должны хранить их вне темы, а затем передавать их в Thread. Предположим, вы сохраняете всю свою информацию в классе State. Вы передаете объект класса State конструктору Thread, и все. –

Смежные вопросы