В моем приложении у меня есть активность, которая отображает содержимое из Интернета..... Я просто хочу знать, как я могу автоматически обновлять активность.....
Пожалуйста, предложите и предоставьте код, если это возможно.
В моем приложении у меня есть активность, которая отображает содержимое из Интернета..... Я просто хочу знать, как я могу автоматически обновлять активность.....
Пожалуйста, предложите и предоставьте код, если это возможно.
попробуйте этот, он хорошо работает:)
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.mHandler = new Handler();
this.mHandler.postDelayed(m_Runnable,5000);
}//onCreate
private final Runnable m_Runnable = new Runnable()
{
public void run()
{
Toast.makeText(refresh.this,"in runnable",Toast.LENGTH_SHORT).show();
refresh.this.mHandler.postDelayed(m_Runnable, 5000);
}
};//runnable
Вы можете использовать обработчик для выполнения цикла, например:
Handler handler = new Handler();
Runnable refresh;
В первое время вызова:
refresh = new Runnable() {
public void run() {
// Do something
handler.postDelayed(refresh, 5000);
}
};
handler.post(refresh);
Поскольку вы не можете вызывать переменную non-final внутри анонимного класса, вам нужно объявить refresh
в содержащем классе.
Этот код для Если вы хотите сначала создать представление и после этой обновляющей страницы в указанный промежуток времени, используйте следующий код. (здесь упоминание о освещении составляет 20 секунд) Он работает нормально и автоматически обновляется каждые 20 секунд.
public class MainActivity extends Activity {
Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.mHandler = new Handler();
m_Runnable.run();
}
private final Runnable m_Runnable = new Runnable()
{
public void run()
{
Toast.makeText(MainActivity.this,"in runnable",Toast.LENGTH_SHORT).show();
MainActivity.this.mHandler.postDelayed(m_Runnable,20000);
}
};
}
Рассмотрите возможность покупки Руководство для занятого кодера для расширенного развития Android", чтобы прочитать, в частности, главу 13 "Шаблоны расширенного обслуживания". Исходный код этой главы доступен в Github, с этим удобным введением:
CWAC Wakeful: Пребывание в Awake At Work
Рекомендуемая модель для Android, эквивалентная заданию cron и Windows запланированные задачи - использовать AlarmManager. Это хорошо работает в сочетании с IntentService, так как служба будет выполнять свою работу в фоновом потоке и закрывать вниз, когда больше нет работы.
Он переводит сцепление AlarmManager
с IntentSerivce
. Это гораздо сложнее, чем использование обработчика, но службы упаковочных данных в Service
являются хорошей практикой и фактически являются обязательными, если вы хотите обмениваться данными между различными приложениями.
Если вы не знаете, как использовать службы, подумайте о покупке "Руководство для занятых кодеров" для Android Development. Он "поставляется с" упомянутой мной книгой. Я вчера их купил, и они - настоящая золотая жила.