Я сделал несколько лет назад приложение для Android-радио (api 8), которое воспроизводит онлайн-радиостанцию и отображает информацию, поступающую из базы данных mysql. Я использовал xml для отображения информации в Text и ImageView и обновлял данные с помощьюtimer
Теперь я хочу обновить свое приложение до api 15 после того, как какое-то время находился в автономном режиме, но saxparser больше не работает на api 15, поэтому я последовал руководству и обновил свое приложение с помощью списка рассылки json и customlistadapter
Только сейчас я не знаю, как автоматически обновлять информацию "сейчас играет".Я пробовал много вещей, искал много учебников, но я все еще не могу понять, как добиться этого с моим новым кодом.
Это был мой старый код, который работал с saxparser:
private class UpdateTimeTask implements Runnable {
@Override
public void run() {
try {
SAXParserFactory saxPF = SAXParserFactory.newInstance();
SAXParser saxP = saxPF.newSAXParser();
XMLReader xmlR = saxP.getXMLReader();
URL url = new URL(
"http://www.example.com/linktodata.php");
XMLHandler myXMLHandler = new XMLHandler();
xmlR.setContentHandler(myXMLHandler);
xmlR.parse(new InputSource(url.openStream()));
data = XMLHandler.data;
for (int i = 0; i < data.getTitle().size(); i++) {
Lyrics.setText(data.getLyric().get(i));
myimageURL = data.getPic().get(i);
Song.setText(data.getTitle().get(i));
Song.setTextColor(Color.parseColor("#7cfc00"));
frAlbum.setTextColor(Color.parseColor("#cd853f"));
Artist.setText(data.getArtist().get(i));
Artist.setTextColor(Color.parseColor("#000000"));
Album.setText(data.getAlbum().get(i));
Album.setTextColor(Color.parseColor("#ff0000"));
nowplaying.setText("Now Playing...");
nowplaying.setTextColor(Color.parseColor("#cd853f"));
}
downloadFile(myimageURL);
} catch (Exception e) {
e.printStackTrace();
}
}
Bitmap bmImg;
void downloadFile(String fileUrl) {
URL myFileUrl = null;
try {
myFileUrl = new URL(fileUrl);
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
if (bmImg != null) {
AlbumPic.setImageBitmap(bmImg);
AlbumPic.clearAnimation();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
m_handler.postDelayed(m_updateTime, DELAY);
// timer end
}
}
Это то, что у меня сейчас.
Музыкальный объект Данные:
public class Music {
private String title;
private String lyrics;
private String album;
private String artist;
private String thumbnailUrl;
public Music() {
}
public Music(String title, String thumbnailUrl, String lyrics, String album, String artist)
{
this.title = title;
this.thumbnailUrl = thumbnailUrl;
this.lyrics = lyrics;
this.album = album;
this.artist = artist;
}
public String getTitle() {
return title;
}
public void setTitle(String name) {
this.title = name;
}
public String getThumbnailUrl() {
return thumbnailUrl;
}
public void setThumbnailUrl(String thumbnailUrl) {
this.thumbnailUrl = thumbnailUrl;
}
public String getLyrics() {
return lyrics;
}
public void setLyrics(String lyrics) {
this.lyrics = lyrics;
}
public String getAlbum() {
return album;
}
public void setAlbum(String album) {
this.album = album;
}
public String getArtist() {
return artist;
}
public void setArtist (String artist) {
this.artist = artist;
}
}
Надеюсь, кто-нибудь может мне помочь.Это последний шаг, чтобы закончить приложение.