1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

G-Sensor Probleme

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Gastonet, 09.11.2011.

  1. Gastonet, 09.11.2011 #1
    Gastonet

    Gastonet Threadstarter Erfahrener Benutzer

    Beiträge:
    203
    Erhaltene Danke:
    22
    Registriert seit:
    05.08.2010
    Hab in einer Layoutdatei eine WebView, welche auch problemos die erwünschte Seite lädt. Wenn ich mein Smartphone allerdings neige und sich der Bildschirminhalt dreht, dann lädt er komischerweise die Seite neu (und zwar die ursprüngliche URL) :/

    Die URL ist statisch im Code festgelegt und wird mit der onCreate-Anweisung geladen

    Code:
    @Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.nachrichten);
    		String neueadresse = "http://www.google.de";
    		mWebView = 
    				(WebView) findViewById(R.id.wv_startseite);
    		mWebView.setWebViewClient(mViewClient);
    		mWebView.getSettings().setJavaScriptEnabled(true);
    		mWebView.loadUrl(neueadresse);
    	}
    Wie verhindere ich, dass er die Seite neu aufbaut?

    Beste Grüße
     
    Zuletzt bearbeitet: 10.11.2011
  2. nijoX, 10.11.2011 #2
    nijoX

    nijoX Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    5
    Registriert seit:
    06.09.2011
    Hallo sel3,
    Um das Neuladen zu verhindern, musst du dir die aktuelle URL immer speichern und dann in der onCreate methode nach dem 1. Aufruf ein flag setzen anhand dessen du dann schauen kannst ... 1. mal aufrufen ? google.de : savedInstanceState. so in der Art. Sollte als denkanstoß reichen :)

    MfG nijoX
     
    Gastonet bedankt sich.
  3. Gastonet, 10.11.2011 #3
    Gastonet

    Gastonet Threadstarter Erfahrener Benutzer

    Beiträge:
    203
    Erhaltene Danke:
    22
    Registriert seit:
    05.08.2010
    Besten Dank, nijoX!! Hat gut funktioniert :)
     
  4. Gastonet, 10.11.2011 #4
    Gastonet

    Gastonet Threadstarter Erfahrener Benutzer

    Beiträge:
    203
    Erhaltene Danke:
    22
    Registriert seit:
    05.08.2010
    Aktuell habe ich es so umgesetzt:

    Code:
    protected void onSaveInstanceState(Bundle outState) {
    		String link = mWebView.getUrl();
    		outState.putString("link", link);
    		super.onSaveInstanceState(outState);
    		Log.d(TAG, "onSaveInstanceState() aufgerufen");
    	}
    	
    	protected void onRestoreInstanceState(Bundle savedInstanceState) {
    		super.onRestoreInstanceState(savedInstanceState);
    		String link = savedInstanceState.getString("link");
    		mWebView.loadUrl(link);
    		Log.d(TAG, "onRestoreInstanceState() aufgerufen");	
    	}
    Das funktioniert wie bereits gesagt. Allerdings ist der Übergang vom Landscape- in den Portraitmodus (und umgekehrt) alles andere als flüssig S:
    Da erscheint für eine Sekunde eine weiße Seite. Gibt es da bestimmte Tricks, wie man das optimieren kann?
     
  5. swordi, 10.11.2011 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    je nachdem was du alles in einer oncreate methode machst.

    das wird ja alles durchlaufen, bevor die activity neu angezeigt wird.
     
    Gastonet bedankt sich.

Diese Seite empfehlen