Обновление данный в activity

У меня есть программа, которая через api получает данные, которые на сервере обновляются каждые 10 минут. В приложении после получения данных, ничего не происходит (т.е после 10 минут дынных остаются такими же). Как сделать так, чтобы после свайпа (сверху вниз) данные обновлялись. Есть activity с 10-ю textview. (Других форматов, таких как scroolview нет)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/city_field"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/updated_field"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/city_field"
    android:layout_centerHorizontal="true"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="13sp" />





private void updateWeatherData(final String city){
        new Thread(){
            public void run(){
                final JSONObject json = RemoteFetch.getJSON(getActivity(), city);
                if(json == null){
                    handler.post(new Runnable(){
                        public void run(){
                            Toast.makeText(getActivity(),
                                    Objects.requireNonNull(getActivity()).getString(R.string.place_not_found),
                                    Toast.LENGTH_LONG).show();
                        }
                    });
                } else {
                    handler.post(new Runnable(){
                        public void run(){
                            renderWeather(json);
                        }

                        @SuppressLint({"SetTextI18n", "DefaultLocale"})
                        private void renderWeather(JSONObject json){
                            try {
                                cityField.setText(json.getString("name").toUpperCase(Locale.US) +
                                        ", " +
                                        json.getJSONObject("sys").getString("country"));

Ответы (0 шт):