2014-01-12 3 views
0

У меня есть класс фрагмента, который запускает другое действие при щелчке по элементу списка.Обновление активности, активность начинается с фрагмента

Intent in = new Intent(getActivity(),SResponses.class); 
    startActivity(in); 

В этой деятельности есть обработчик, который обновляет активность через несколько секунд.

new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         finish(); 
         startActivity(getIntent()); 
        } 
       }, 4000);  

Но когда однажды открыт этот класс это держать на освежающий все время, даже когда я нажимаю кнопку назад он не вернуться назад и и держать на освежающий снова и again.I хотят работать только в этом когда это действие активно.

+0

Почему вы «обновляете» свои данные, уничтожая текущую деятельность и создавая новую? – Hellboy

+0

Фактически моя база данных время от времени обновляется, а значения обновляются в списке, и я хочу обновить список новыми значениями через определенное время. – user3091531

+0

Как я могу узнать, когда база данных будет обновляться? – user3091531

ответ

1

Это очень странный подход для меня «обновить» активность, как это, но вы можете попробовать что-то вроде этого:

1) Объявить членов класса:

private Handler handler; 
private Runnable runnable = new Runnable() { 
    @Override 
    public void run() { 
        finish(); 
        startActivity(getIntent()); 
    } 
} 

2) установить обработчик:

handler = new Handler(); 
handler.postDelayed(runnable, 4000); 

3) и onStop() или onDestroy() call `handler.removeCallbacks (runnable);

+0

спасибо dude :) .................... – user3091531

+0

Продолжайте делать goooood – user3091531

+0

Спасибо, но я настоятельно рекомендую вам искать лучшее решение для обновления активности. CursorAdapter и ContentProvider должны быть хорошими душами – Hellboy

Смежные вопросы