1. Gingerbread, 24.05.2011 #1
    Gingerbread

    Gingerbread Threadstarter Android-Hilfe.de Mitglied

    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.
     
  2. ko5tik, 24.05.2011 #2
    ko5tik

    ko5tik Android-Experte

    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
     
  3. Gingerbread, 24.05.2011 #3
    Gingerbread

    Gingerbread Threadstarter Android-Hilfe.de Mitglied

    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?
     
  4. ko5tik, 25.05.2011 #4
    ko5tik

    ko5tik Android-Experte

    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
     
  5. Gingerbread, 27.05.2011 #5
    Gingerbread

    Gingerbread Threadstarter Android-Hilfe.de Mitglied

    Ok,
    und wie kommt es dann, dass die onResume() Funktion nie ausgeführt wird, wenn ich eine Activity wieder per Backbutton aufrufe?
     
  6. Gingerbread, 29.05.2011 #6
    Gingerbread

    Gingerbread Threadstarter Android-Hilfe.de Mitglied

    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();
        }
    
    
    
     
  7. Peter123, 29.05.2011 #7
    Peter123

    Peter123 Android-Hilfe.de Mitglied

    Also theoretisch müsste das ja so funktionieren, probier es doch mal an einem anderen Projekt ohne TabHost aus.
     
  8. Gingerbread, 29.05.2011 #8
    Gingerbread

    Gingerbread Threadstarter Android-Hilfe.de Mitglied

    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?
     
Die Seite wird geladen...
Similar Threads Forum Datum
SD Karte funktioniert nicht mehr, liegt eher am Telefon Android Allgemein Mittwoch um 08:26 Uhr
Wiederherstellung der App-Daten funktioniert nicht (mehr) Helium Mittwoch um 12:45 Uhr
HUAWEI eRecovery funktioniert nicht. Root / Custom-ROMs / Modding für Huawei P10 Donnerstag um 09:53 Uhr
Samsung S7 , Android 7.0 Update 24.5.17 Word, Excel funktioniert nicht mehr Office Apps Donnerstag um 14:34 Uhr
Ich komme nicht in das Richtige Recovery Menü Huawei P9 Lite Forum Samstag um 01:16 Uhr
WiFi+ funktioniert nicht (richtig) Huawei P9 Forum Samstag um 10:41 Uhr
Fastboot funktioniert nicht mehr Zuk Z1 Forum Samstag um 20:48 Uhr
Unterstützte Webadresse funktioniert nicht Android 7.x (Nougat) Sonntag um 18:15 Uhr
Mate 9 Fehlersammlung - Vermeidung und Beseitigung Root / Custom-ROMs / Modding für Huawei Mate 9 Sonntag um 19:21 Uhr
Mobiles Internet (3G/4G) funktioniert, Telefonieren jedoch nicht. Android Allgemein Gestern um 12:18 Uhr

Users found this page by searching for:

  1. onresume android aus andere activity aufrufen