Aktualisieren Sie die Aktivität Inhalte auf Rückkehr aus einer anderen activity in android
Meine app ist eine Nachricht, die app und Sie haben eine Aktivität, die Sie durchführen, Posteingang Funktionalität. Also, in meinem Posteingang, werde ich eine Liste ungelesener Nachrichten auf und das Lesen von Nachrichten am unteren Rand.
So, wenn ich auf eine ungelesene Nachricht wird es zu bewegen, um eine neue Aktivität, das zeigt die Besondere Nachricht ausgewählt und in meine Datenbank werde ich es markieren als gelesen. Also, auf auf zurück klicken, wenn es sich bewegt, um zu der vorherigen Tätigkeit dieser Meldung sollte angezeigt werden unter das Lesen lieben. Aber in meinem Fall es zeigt das alte Szenario ich.e, die Meldung wird immer noch angezeigt unter "ungelesen".
Dachte ich, dass die Aktivität der aktualisiert werden soll, wenn gibt es, so ich versuchte, einige erfrischende Methoden wie:
1.
public void onResume(Bundle s)
{ //After a pause OR at startup
super.onResume();
this.onCreate(s);
}
2.
Intent intent = new Intent(this, msgdisplayActivity.class); //msgdisplayActivity is activity which display the selected message.
//intent.putExtra("someData", "Here is some data");
startActivityForResult(intent, 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
Intent refresh = new Intent(this, inboxlist.class); //inboxlist is activity which list the read and unread messages
startActivity(refresh);
this.finish();
}
}
Aber beide dies nicht. onResume()
wird nicht genannt und die andere zeigt Fehler.
- können Sie bitte fügen Sie Ihre Fehler?
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie Ihre aktualisieren-layout-code in einer Methode
z.B.
dann können Sie
und
der gleichen Methode, die Sie verwenden können, in der onCreate-Methode.
Können Sie bitte einen Ihrer onCreate und onResume-code? also kann ich die Bearbeiten meine Antwort wie pro Ihren code?
onResume wird auch aufgerufen, nur nach onActivityResult(), so können Sie auch setzen Sie dort Ihren code
Ihre
onResume()
- Methode wird nie aufgerufen, weil seine Unterschrift.Ist es eine gute Idee zu verwenden
@Override
wenn Sie beabsichtigen, eine Methode überschreiben. Hatten Sie verwendet@Override
in Ihrem code, Sie hätte wies auf das problem, dass Sie beabsichtigen, Sie zu überschreiben, aber nicht erfolgreich.Urteilen aus Ihrer Sicht
1
ich würde empfehlen, dass Sie versuchen zu verstehen, Aktivität Lebenszyklus besser, da ruftsuper.onCreate()
innerhalbonResume()
und auch nachsuper.onResume()
ist, hmm, alles falsch.Ihre ersten code-snippet sollte wie folgt Aussehen:
Aber Sie sollten sicherstellen, dass Sie verstehen, wenn
onResume()
aufgerufen wird.Bezüglich Ihrer
onActivityResult()
Umsetzung, kann es nicht der effizienteste Ansatz zum erneuten laden der "Posteingang" - Aktivität, aber es sollte funktionieren. Der code sieht gut aus, außer ein Aspekt: Bei dieser Methode würde ich das nicht nennensuper.onActivityResult()
denn es ist nicht erforderlich, und es kann dazu beitragen, etwas sinnvolles. Ich es nie tun und das funktioniert auch. Also vielleicht bekommen ridd von diesem Anruf und sehen, ob der Fehler immer noch Auftritt.Wenn ja, poste bitte die Fehlermeldung.
verschiedenen Geräten behandeln Aktivität Zerstörung anders. die sicher Methode, die ich gefunden habe, ist das speichern des Zustands zu app db und abrufen im Fokus der app.