Busqué en todas partes esto, pero nadie parece tener una respuesta.¿Cómo precargar una actividad?
Mi pregunta es sencilla:
¿Hay una manera de cargar previamente una actividad? Necesito esto porque utilizo una pestaña, y una pestaña tiene múltiples actividades. Una de mis actividades es un lector de rss, y carga bastante duro (unos 2-3 segundos).
Todo lo que encontré en la web es una broma. Todos tienen una opinión, pero nadie puede indicarle un código de muestra. Esperando una respuesta, gracias!
Este es el código que carga la alimentación:
At onCreate:
// go get our feed!
feed = getFeed(RSSFEEDOFCHOICE);
// display UI
UpdateDisplay();
countdown();
And the functions:
private RSSFeed getFeed(String urlToRssFeed)
{
try
{
// setup the url
URL url = new URL(urlToRssFeed);
// create the factory
SAXParserFactory factory = SAXParserFactory.newInstance();
// create a parser
SAXParser parser = factory.newSAXParser();
// create the reader (scanner)
XMLReader xmlreader = parser.getXMLReader();
// instantiate our handler
RSSHandler theRssHandler = new RSSHandler();
// assign our handler
xmlreader.setContentHandler(theRssHandler);
// get our data via the url class
InputSource is = new InputSource(url.openStream());
// perform the synchronous parse
xmlreader.parse(is);
// get the results - should be a fully populated RSSFeed instance, or null on error
return theRssHandler.getFeed();
}
catch (Exception ee)
{
// if we have a problem, simply return null
return null;
}
}
private void UpdateDisplay()
{
TextView feedtitle = (TextView) findViewById(R.id.feedtitle);
TextView feedpubdate = (TextView) findViewById(R.id.feedpubdate);
ListView itemlist = (ListView) findViewById(R.id.itemlist);
if (feed == null)
{
feedtitle.setText("No RSS Feed Available");
return;
}
feedtitle.setText(feed.getTitle());
feedpubdate.setText(feed.getPubDate());
ArrayAdapter<RSSItem> adapter = new ArrayAdapter<RSSItem>(this,android.R.layout.simple_list_item_1,feed.getAllItems());
itemlist.setAdapter(adapter);
itemlist.setOnItemClickListener(this);
itemlist.setSelection(0);
}
Es mejor usar AsyncTask y tener un ProgressDialog durante algún tiempo hasta que los datos se carga. –
¿Por qué no se puede separar el lector de RSS en un servicio (ya sea un servicio de Android o un simple servicio de singleton) que comienza a cargar los feeds en la inicialización de la aplicación? La vista separada y la lógica del modelo son generalmente recomendables. – jkschneider