в моей mainActivity, которая является единственной активностью моего приложения, я создаю обработчик ниже и запускаю внутри него исполняемый файл.
У меня есть некоторые недоразумения относительно обработчиков и того, где они работают.
Посмотреть код
Handler handler;
@Override
protected void onCreate(Bundle bundle)
{
handler = new Handler();
handler.postDelayed(r , 5000);
}
Runnable r = new Runnable()
{
@Override
public void run() {
FetchServerAndUpdateStatus(); //network stuff in here
handler.postDelayed(r , 5000);
}
}
- Я предполагаю, что этот код все еще будет работать в потоке пользовательского интерфейса, и я не смогу совершать там какие-либо сетевые вызовы, нет?
- Если да, то что мне делать? Создать и использовать отдельный поток?
- Если я создал новый поток, как я могу запустить метод с отложенной записью? В теме нет отложенного поста?
- Не лучше ли использовать обработчик/runnable и использовать TimerTask и Runnable? Или, как и вышеприведенный обработчик/исполняемый, он также будет работать в потоке пользовательского интерфейса, если только он не создан внутри отдельного потока.