그러냐

안드로이드 WebView 화면 전환 시 Reload 되는 현상 방지 가로모드 본문

android

안드로이드 WebView 화면 전환 시 Reload 되는 현상 방지 가로모드

관절분리 2016. 6. 1. 10:16
반응형

 

안드로이드 개발시 WebView를  적용할 때 가로/세로로 화면이 전화되면 URL이 Reload 되는 현상이 발생합니다.

(화면전환 시 Activity의 onCreate 메소드가 다시 호출되기 때문)


[화면 전환시 Method 호출 순서]

onSaveInstanceState() → onCreate() → onRestoreInstanceState()

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.example.webview;
 
import android.os.Bundle;
import android.app.Activity;
import android.webkit.WebView;
 
public class MainActivity extends Activity {
    
    WebView webview;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        webview = (WebView)findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true); 
        webview.getSettings().setBuiltInZoomControls(false);
        webview.getSettings().setSupportZoom(true);
        webview.getSettings().setLoadWithOverviewMode(true);
        webview.getSettings().setUseWideViewPort(true);
        
        if(savedInstanceState == null
            webview.loadUrl("http://m.daum.net");
    }
 
 
    @Override
    protected void onSaveInstanceState(Bundle savedInstanceState){
        super.onSaveInstanceState(savedInstanceState);
     
        webview.saveState(savedInstanceState);
    }
    
    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState){
        super.onRestoreInstanceState(savedInstanceState);
     
        webview.restoreState(savedInstanceState);
    }
 
}


 

출처 : http://docko.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-WebView-%ED%99%94%EB%A9%B4-%EC%A0%84%ED%99%98-%EC%8B%9C-Reload-%EB%90%98%EB%8A%94-%ED%98%84%EC%83%81-%EB%B0%A9%EC%A7%80

반응형