Ваш поток не имеет цикла событий QT, поэтому ничего не произойдет.
Я работал не с QT в Java, а с c ++, поэтому не могу привести пример кода, но эта страница должна помочь:
http://qt.nokia.com/doc/qtjambi-4.5.2_01/com/trolltech/qt/qtjambi-threads.html
С этим сказанным ... попробуйте это:
void testnetwork_thread()
{
new Thread(new Runnable() {
@Override
public void run() {
QEventLoop loop = new QEventLoop();
testnetwork();
loop.exec();
}
}).start();
}
Обратите внимание, что это должно просто указать вам правильное направление, вам необходимо решить проблемы с синхронизацией и т. Д. Также обратите внимание на абзац, в котором говорится о владении QObject и потоках (сходство потоков).
В C ++ я создал класс, расширяющий QThread, и абстрактный интерфейс под названием «Рабочий». Производный класс QThread принимает объект Worker в качестве аргумента в конструкторе и изменяет сродство так, что он «принадлежит» этому потоку (см .: moveToThread ()). Затем в переопределенном методе run () он вызывает метод Worker :: init (), после чего запускает цикл обработки событий. Я запускаю все начальные вещи, которые необходимо обработать в методе init (), такие как таймеры или сетевые запросы.