Aktuelle Aktivität in Android neu laden [duplicate]

Lesezeit: 4 Minuten

Benutzeravatar von Android_Code_Chef
Android_Code_Chef

Ich meine Android-App, um ihre aktuelle Aktivität auf ButtonClick zu aktualisieren.

Ich habe eine Schaltfläche oben im Aktivitätslayout, die die Arbeit erledigen sollte. Wenn ich auf die Schaltfläche klicke, sollte die aktuelle Aktivität neu geladen werden, genau wie bei einem Neustart des Geräts.

Wie kann ich das machen?

  • [for API before 11 you cannot use recreate(). I solved in this way:][1] [1]: stackoverflow.com/questions/2486934/…

    – AA

    4. August 2014 um 13:28 Uhr

  • Es wurde hier bereits mit einem guten Ansatz beantwortet: stackoverflow.com/a/6283098/8713823

    – Islam Alshnawey

    3. November 2021 um 8:21 Uhr


public void onClick (View v){
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}

  • Ich hatte diesen Code bei mir, aber er zeigt im Grunde eine Animation, dass wir uns von einer Aktivität zur nächsten bewegen. Und auch meine bisherige Tätigkeit lebt noch. Ich möchte, dass alles neu geladen werden soll.

    – Android_Code_Chef

    1. Juli 2011 um 12:38 Uhr

  • intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

    – Anders

    1. Juli 2011 um 12:40 Uhr

  • Das ist wichtig, danke @Otra

    – Hilal

    1. Februar 2017 um 21:32 Uhr

  • Meine listView wird mit dieser Methode nicht aktualisiert. Wieso den?

    – Achtung

    4. April 2018 um 6:37 Uhr

  • Intent intent = new Intent(YourActivity.this,YourActivity.class); finish(); startActivity(intent); Beste Lösung, es wird alles auffrischen. ofc Wenn Sie einige Daten speichern möchten, können Sie Shared Pref verwenden, bevor Sie die Seite beenden @Otra @Shine

    – Exotisch

    15. Juni 2020 um 14:13 Uhr


Benutzeravatar von gregory561
gregory561

Sie können dies versuchen

finish();
startActivity(getIntent());

Diese Frage wurde bereits gestellt: Wie starte ich eine Android-Aktivität neu?

  • Ich hatte diesen Code bei mir, aber er zeigt im Grunde eine Animation, dass wir uns von einer Aktivität zur nächsten bewegen. Und auch meine bisherige Tätigkeit lebt noch. Ich möchte, dass alles neu geladen werden soll.

    – Android_Code_Chef

    1. Juli 2011 um 12:38 Uhr

  • Aus Ihrer eigenen Frage “Es sollte neu starten und alle Instanzen der vorherigen aktuellen Aktivität löschen.” Das ist die Antwort von @Greg

    – Blundell

    1. Juli 2011 um 12:41 Uhr

  • Wenn Sie die Animation zum Laden der Aktivität nicht möchten. Finden Sie heraus, was Sie aktualisieren möchten, und führen Sie dies manuell durch.

    – Blundell

    1. Juli 2011 um 12:41 Uhr

Benutzeravatar von Sudara
Sudara

In einer Aktivität können Sie anrufen recreate() um die Aktivität “neu zu erstellen” (API 11+)

  • Funktioniert wie am Schnürchen, danke für die Lösung!

    – hetsgandhi

    3. Oktober 2019 um 8:47 Uhr

  • Dieser funktioniert! Es hat keine Animation!

    – Shark Deng

    14. Oktober 2019 um 8:35 Uhr


  • großartig … aber können wir die Blackout-Animation während der Neuerstellung entfernen?

    – Parthan_akon

    27. August 2021 um 6:33 Uhr

Dies ist eine Refresh-Button-Methode, aber sie funktioniert gut in meiner Anwendung. in finish() killst du die Instanzen

public void refresh(View view){          //refresh is onClick name given to the button
    onRestart();
}

@Override
protected void onRestart() {

    // TODO Auto-generated method stub
    super.onRestart();
    Intent i = new Intent(lala.this, lala.class);  //your class
    startActivity(i);
    finish();

}

das ist, was für mich funktioniert hat, wie gesehen hier.

Verwenden Sie es einfach oder fügen Sie es einem statischen Klassenhelfer hinzu und rufen Sie es einfach von überall in Ihrem Projekt auf.

/**
Current Activity instance will go through its lifecycle to onDestroy() and a new instance then created after it.
*/
@SuppressLint("NewApi")
  public static final void recreateActivityCompat(final Activity a) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
      a.recreate();
    } else {
      final Intent intent = a.getIntent();
      intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
      a.finish();
      a.overridePendingTransition(0, 0);
      a.startActivity(intent);
      a.overridePendingTransition(0, 0);
   }
}

  • Nachdem Sie dies gesetzt haben … startet sich die Aktivität immer wieder neu.

    – Abu Ruqaiyah

    2. Juni 2016 um 12:09 Uhr

  • @AbuRuqaiyah stellen Sie sicher, dass Sie dies in einem onClickListener oder einem beliebigen Trigger aufrufen. Stellen Sie außerdem sicher, dass Sie diese Funktion nicht aus einer Schleife oder einer Funktion aufrufen, die möglicherweise bei jedem Start Ihrer App ausgeführt wird – ich hoffe, Sie haben den Vorgang verstanden

    – Wilhelm

    26. September 2016 um 19:00 Uhr

  • Danke, das ist für mich gearbeitet

    – Krupa Kakkad

    4. Januar 2017 um 13:23 Uhr

Benutzeravatar von CommonsWare
CommonsWare

Es sollte neu starten und alle Instanzen der vorherigen aktuellen Aktivität löschen.

Nein, sollte es nicht.

Es sollte seine vorhandenen Daten aktualisieren (z. requery() das Cursor). Dann gibt es keine “Instanzen früherer aktueller Aktivitäten”, um die man sich Sorgen machen müsste.

  • Nachdem Sie dies gesetzt haben … startet sich die Aktivität immer wieder neu.

    – Abu Ruqaiyah

    2. Juni 2016 um 12:09 Uhr

  • @AbuRuqaiyah stellen Sie sicher, dass Sie dies in einem onClickListener oder einem beliebigen Trigger aufrufen. Stellen Sie außerdem sicher, dass Sie diese Funktion nicht aus einer Schleife oder einer Funktion aufrufen, die möglicherweise bei jedem Start Ihrer App ausgeführt wird – ich hoffe, Sie haben den Vorgang verstanden

    – Wilhelm

    26. September 2016 um 19:00 Uhr

  • Danke, das ist für mich gearbeitet

    – Krupa Kakkad

    4. Januar 2017 um 13:23 Uhr

Benutzeravatar von Md. Ilyas Hasan Mamun
Md. Ilyas Hasan Mamun

Sie können dies versuchen:

        CookieSyncManager.createInstance(this);         
        CookieManager cookieManager = CookieManager.getInstance();        
        cookieManager.removeAllCookie();        
        Intent intent= new Intent(YourCurrent.this, YourCurrent.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

1432160cookie-checkAktuelle Aktivität in Android neu laden [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy