У меня уже есть обходной путь, но мне нужно мнение, чтобы сделать лучше. Я пытаюсь портировать простое приложение на Wear
, которое использует socket.io
. Я обнаружил, что socket.io
не работает на Wear
в настоящее время. socket.io
вызывает только вызов API в моем приложении, поэтому я сделал Handler.postDelayed
с задержкой в 500, чтобы сделать его максимально реалистичным.
Меня беспокоит, что Handler
будет повторяться снова и снова, пока пользователь не закроет приложение. Я уже исправил вызов API, чтобы не обновлять RecyclerView
, когда старый и новый ответ равны. Что я могу сделать, чтобы сделать его более эффективным, чем у меня уже есть?
Это мой текущий код.
Runnable somethingRunnable = new Runnable() {
@Override
public void run() {
try{
getSomething(serverUrl);
}finally {
getSomethingHandler.postDelayed(somethingRunnable, 500);
}
}
};
Это мое состояние внутри getSomething
.
if(!newResponse.equals(oldResponse)){
oldResponse = newResponse;
}else{
return;
}