Вы не говорите, что вы подразумеваете под паузой.Что делает ваше приложение?
Как правило, вы НЕ МОЖЕТЕ приостановить работу приложения.Приложения пользовательского интерфейса запускаются из цикла обработки сообщений.Сообщение приходит, сообщение отправляется, цикл ожидает другого сообщения.Приложение по-прежнему должно обрабатывать такие вещи, как нажатие пользователем кнопок, изменение размера окна, закрытие приложения и т. Д., Чтобы этот цикл выполнялся непрерывно.
Если вы хотите, чтобы приложение «приостанавливало» в смысле предотвращенияпользователь делает что-то, просто выделите любую кнопку или меню, что вы не хотите, чтобы пользователи делали.
Если ваше приложение запускает поток в фоновом режиме и хочет, чтобы оно приостановило это действие, пока вы не возобновите его, вы можете сделать это довольно легко, как это.
MyThread mythread = new MyThread();
// Main thread
void pause() {
mythread.pause = true;
}
void resume() {
synchronized (mythread) {
mythread.pause = false;
mythread.notify();
}
}
class MyThread extends Thread {
public boolean pause = false;
public void run() {
while (someCondition) {
synchronized (this) {
if (pause) {
wait();
}
}
doSomething();
}
}
}
Это также возможноиспользовать Thread.suspend (), Thread.resume (), чтобы выполнить подобное, но это опасно, потому что вы не знаете, где находится поток, когда вы его приостанавливаете.Он может иметь открытый файл, быть посередине отправки сообщения через сокет и т. Д. Помещение теста в любой цикл, управляющий вашим потоком, позволяет вам приостановить работу в момент, когда это безопасно.