2011-01-03 4 views
1

Я вызываю действие изнутри самого себя - в основном у меня есть список новых сюжетов и две кнопки фильтров, которые при нажатии перезапускают действие с намерением, который изменил новостные сюжеты.Обновление активности Android

Когда я запускаю приложение, оно работает, но на секунду я получаю старый пользовательский интерфейс активности, когда приложение читает новый XML-канал, а затем обновляет пользовательский интерфейс. Есть ли способ остановить это от происходящего и заставить его перезапустить холод.

вот код, я в настоящее время присоединение к onclicklistener

public void openFootballNews(View v) { 
Intent i = new Intent(this, News_Landing.class); // News_landing class is the class this code is in 
Bundle bundle = new Bundle(); 
    bundle.putString("code", "football"); // this, if set, changes the xml feed to read 
    i.putExtras(bundle); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    this.onCreate(null); //this has halved the time the old UI is on the screen for but I cant get rid of it completely 
    startActivity(i); 
} 

любая помощь будет здорово, спасибо!

+2

hmm call finish() при первом действии, когда вы сделали с ним? – schwiz

+1

Повторное открытие «Активность» кажется пустой тратой. Вероятно, было бы быстрее и менее запутывать пользователя обновлять истории в фиде вместо повторного открытия всей «Деятельности». – Computerish

+0

спасибо, я собирался обновить истории, но я не могу заставить getView в моем пользовательском адаптере работать во второй раз. – Muller

ответ

3

Запуск деятельности от себя не имеет смысла (если только ваша цель - сделать что-то эзотерически рекурсивное;)). Кроме того, я могу ошибаться, но я считаю, что действия хранятся в стеке, так что, когда вы переключаетесь между новостями, вы накапливаете одну почти идентичную деятельность за другой. Я бы тоже подумал, что вызов onCreate() вручную - это плохая форма.

нужно бы увидеть весь код, но я думаю, что вы читаете фид и создания списка внутри onCreate(), и что вам лучше реорганизовать, что в метод openNews(String sport), который вы вызываете один раз в onCreate() и снова в вашем слушателе (ов).

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