I 2 Aktivitäten haben, i) MainActivity ii) FavoriteActivity und eine nicht-Aktivitätsklasse Radioservice. Beide Aktivitäten hava eine identische Methode - notifyShowBar(), zeigt eine Textleiste in [email protected] definiert.Android Aktivität: aktualisiert in regelmäßigen Abständen sowohl Aktivität Text aus derselben Datenquelle
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onResume() {
super.onResume();
notifyShowBar();
}
public void notifyShowBar() {
....
textView.setText(revs.getMeta());
....
}
.....
FavoriteActivity.java
public class FavoriteActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onResume() {
super.onResume();
notifyShowBar();
}
public void notifyShowBar() {
....
textView.setText(revs.getMeta());
....
}
.....
Nun, wenn eine Aktivität Radioservice nennt, hat es eine Timertask erstellt, es Informationen vom Server regelmäßig dann holen, und zeigt bar in übergeordneter Aktivität . Die Leiste zeigt also alle 15 Sekunden aktualisierte Informationen an.
private class ProgressTask extends AsyncTask<String, Void, Boolean> {
@Override
protected void onPostExecute(final Boolean success) {
updateMeta();
....
}
public void updateMeta() {
timerAsync = new Timer();
timerTaskAsync = new TimerTask() {
@Override
public void run() {
((Activity)context).runOnUiThread(new Runnable() {
@Override public void run() {
// get and set meta data here and then call createShowBar
createShowBar();
}
});
}
};
timerAsync.schedule(timerTaskAsync, 0, 15000);
}
private void createShowBar() {
if (RadioService.inwhich == 2) {
((FavoriteActivity) context).notifyShowBar();
} else {
((MainActivity) context).notifyShowBar();
}
}
.....
}
Problem ist, wenn ich einen Knopf in MainActivity auszuführen, den Radioservice aufruft, zeigt es eine Bar und Updates dort in regelmäßigen Abständen. Wenn ich jedoch zu FavoriteActivity blättere, wird die Leiste angezeigt, aber nicht regelmäßig aktualisiert. Wie kann ich es für beide Aktivitäten möglich machen? Vielen Dank.
Danke für den Vorschlag. Der Benutzer kann RadioService auch von FavoriteActivity aus starten! Dann erstellt RadioService eine Timertask und startet die Aktualisierung der Leiste auf FavoriteActivity in regelmäßigen Abständen. Also keine regelmäßigen Updates auf MainActivity. Es ist eine Situation umgekehrt. Was ist zu tun? –
Eine Sendung ist ein Feuer-und-Vergessen-Ding. Du sendest eins, und jemand kann es empfangen, wenn sie zuhören. Sie können beide Aktivitäten hören, eine von ihnen oder keine. – DariusL
Danke, es hat perfekt funktioniert. Du bist Retter: D –