| |||||||
Das Thema "onResume() funktioniert nicht richtig" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #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
| 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
}
} 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 (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
|
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 |
| | |
| | #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
|
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 (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
|
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 |
| | |
| | #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
|
Ok, und wie kommt es dann, dass die onResume() Funktion nie ausgeführt wird, wenn ich eine Activity wieder per Backbutton aufrufe? |
| | |
| | #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
|
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 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 13.11.2010
Beiträge: 114
Abgegebene Danke: 0
Erhielt 11 Danke für 11 Beiträge
|
Also theoretisch müsste das ja so funktionieren, probier es doch mal an einem anderen Projekt ohne TabHost aus.
|
| | |
| | #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
|
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); 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;
} Code: @Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode == KeyEvent.KEYCODE_BACK)
{
ActivityGroup.group.back();
return true;
}
return super.onKeyDown(keyCode, event);
} 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? |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| 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 |