Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

onResume() funktioniert nicht richtig

Das Thema "onResume() funktioniert nicht richtig" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 24.05.2011, 17:31   #1 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 21.01.2011
Beiträge: 106
Abgegebene Danke: 1
Erhielt 3 Danke für 3 Beiträge
Standard onResume() funktioniert nicht richtig

Habe in meinen Code die onResume() Methode eingebaut, damit die Activity neu geladen wird, wenn der Back-Button benutzt wird.
Hier eine grobe Struktur des Codes:
Code:
public class MeineActivity extends ListActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity);
        // Weiterer Code
        }

 public void onResume(){
    	super.onResume();
    	setContentView(R.layout.activity);
        // Weiterer Code
         }

}
Nun habe ich das Problem, dass der onResume()-Block jedesmal ausgeführt wird, wenn die Activity gestartet wird.
Wenn diejenige Activity nun mittels Back-Button aufgerufen wird, dann wird der Resume-Block nicht ausgeführt.

P.S.: Das Ganze befindet sich in einer ActivityGroup und in einem TabHost.
Gingerbread ist offline   Mit Zitat antworten
Alt 24.05.2011, 19:58   #2 (permalink)
Android Experte

Modell: HTC Hero

Registriert seit: 14.10.2009
Beiträge: 612
Abgegebene Danke: 18
Erhielt 42 Danke für 40 Beiträge
Standard AW: onResume() funktioniert nicht richtig

Du Brauchst keinen View in onResume zu konfigurieren - das machst du im onCreate()

onPause() ist dafür gedacht, Daten zu speichern, Threads zu szoppen und sich auf WInterschlaff vorzubereiten - das ganze mach man im onResume() rückgängig
__________________
_____________________________________________
Meine apps: http://www.pribluda.de/android
Suche Schriftmuster von Prepaid-Auflade-Bons
ko5tik ist offline   Mit Zitat antworten
Alt 24.05.2011, 20:26   #3 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 21.01.2011
Beiträge: 106
Abgegebene Danke: 1
Erhielt 3 Danke für 3 Beiträge
Standard AW: onResume() funktioniert nicht richtig

Ok, wäre es denn theoretisch richtig onResume() zu verwenden, wenn ich einzelne Elemente der Activity (wie zB. erneuern der ListView) ausführen möchte?
Gingerbread ist offline   Mit Zitat antworten
Alt 25.05.2011, 20:33   #4 (permalink)
Android Experte

Modell: HTC Hero

Registriert seit: 14.10.2009
Beiträge: 612
Abgegebene Danke: 18
Erhielt 42 Danke für 40 Beiträge
Standard AW: onResume() funktioniert nicht richtig

Ja, so in etwa. onResume() wird immer aufgerufen, wenn die Activity in der Vordergrunf gebracht wird

onCreate - bau deinen Interface auf
onResume - initialisiere von gespeicherten Daten und starte was du starten muss
onPause - speichere den Zustand und stoppe deine Prozesse
__________________
_____________________________________________
Meine apps: http://www.pribluda.de/android
Suche Schriftmuster von Prepaid-Auflade-Bons
ko5tik ist offline   Mit Zitat antworten
Alt 27.05.2011, 17:50   #5 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 21.01.2011
Beiträge: 106
Abgegebene Danke: 1
Erhielt 3 Danke für 3 Beiträge
Standard AW: onResume() funktioniert nicht richtig

Ok,
und wie kommt es dann, dass die onResume() Funktion nie ausgeführt wird, wenn ich eine Activity wieder per Backbutton aufrufe?
Gingerbread ist offline   Mit Zitat antworten
Alt 29.05.2011, 18:11   #6 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 21.01.2011
Beiträge: 106
Abgegebene Danke: 1
Erhielt 3 Danke für 3 Beiträge
Standard AW: onResume() funktioniert nicht richtig

Also muss ich das ganze in etwa so einbauen:

Code:
 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
  //Mein Code
}

@Override
public void onResume()
{
    super.onResume();
    //Mein Code
}

 @Override
    public void onPause()
    {
    	super.onPause();
    }
Gingerbread ist offline   Mit Zitat antworten
Alt 29.05.2011, 18:32   #7 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 13.11.2010
Beiträge: 114
Abgegebene Danke: 0
Erhielt 11 Danke für 11 Beiträge
Standard AW: onResume() funktioniert nicht richtig

Also theoretisch müsste das ja so funktionieren, probier es doch mal an einem anderen Projekt ohne TabHost aus.
Peter123 ist offline   Mit Zitat antworten
Alt 29.05.2011, 18:34   #8 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 21.01.2011
Beiträge: 106
Abgegebene Danke: 1
Erhielt 3 Danke für 3 Beiträge
Standard AW: onResume() funktioniert nicht richtig

Habe nun endlich rausgefunden woran es liegt:
Die neue Activity wird aufgerufen mitttels:
Code:
 View view = ActivityGroup.group.getLocalActivityManager()  
        .startActivity("activity_neu", i  
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
        .getDecorView();  
        
        // Again, replace the view  
        Activity.group.replaceView(view);
Das steht in der ActivityGroup:
Code:
public void replaceView(View v) {  
        // Adds the old one to history  
       history.add(v);  
        // Changes this Groups View to the new View.  
       setContentView(v);  
      }  
	
	public void back() { 
		try{
        if(history.size() > 0) {  
            history.remove(history.size()-1);  
            setContentView(history.get(history.size()-1));  
        }else {  
            finish();  
        }  
		}
		catch(Exception e){}
    }
	
    public void onBackPressed() {  
        ActivityGroup.group.back();  
        return;  
    }
Und nun wird mit folgendem Code der Zurückbefehl ausgeführt:
Code:
@Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
    if(keyCode == KeyEvent.KEYCODE_BACK)
    {
    ActivityGroup.group.back();
    return true;
    }
    return super.onKeyDown(keyCode, event);
    }
Das Problem besteht jetzt halt darin, dass die alte Activity nur mittels
setContentView(history.get(history.size()-1));
ersetzt wird.
Deswegen wird wahrscheinlich auch nie die onResume Funktion ausgeführt. Wie kann ich jetzt dieses Problem beheben?
Gingerbread ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Freisprechen funktioniert nicht richtig Freeman90 HTC Wildfire Forum 0 26.02.2011 19:41
Internet funktioniert nicht richtig! Crissi69 HTC Legend Forum 1 17.11.2010 08:06
G1 tastatur funktioniert nicht richtig Artwork Zubehör für T-Mobile G1 1 02.11.2010 19:43
Kompass funktioniert nicht richtig. jenkins Samsung Galaxy S (I9000) Forum 2 18.08.2010 13:18
Vibrationsmodus funktioniert nicht richtig alex2112 HTC Desire Forum 57 10.06.2010 11:26




Du liest gerade: "onResume() funktioniert nicht richtig" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.