2014-09-17 4 views
0

webview에서 Android를로드하려고합니다. URL은 웹보기에서 정상적으로로드됩니다. 그러나 문제는 webview에서 웹 페이지의 로딩 시간입니다. 때때로 웹 페이지가 1 ~ 2 초 내에 즉시로드됩니다. 그러나 때로는 웹 페이지가 웹보기에서 웹 페이지를로드하는 데 40 초 이상 걸립니다. 브라우저에서 URL을 확인하면 2 초 이내에로드됩니다. 문제는 웹 페이지가 2 초 이상 걸리면 웹보기의 흰색 색상 만 표시되고 사용자는 앱이 멈추었거나 응답하지 않는다고 생각하고 있다는 것입니다. 그래서 그들은 로딩 시간에 대해 불평하고 있습니다. 이 문제를 해결할 수있는 방법이 있습니까?웹 페이지로드 속도가 느림

답변

1

인터넷에서 들어오는 콘텐츠를로드하는 가장 좋은 방법은 기본 콘텐츠와 별도의 프로세스를 사용하는 것입니다. 예 :

  • 클릭하면 웹보기가 열립니다.
  • 앱은 webview 활동을 시작하지 않고 'Loading ...'정보 (로고 또는 아이콘 포함)가있는 시작 화면을 표시합니다.
  • 이 스플래시 화면 활동은 인터넷 연결이 인 지 확인합니다. 그렇다면 스플래시 활동은 AsyncTask를 시작합니다. 별도의 backgorund 스레드에서 필요한 HTML 페이지 (또는 XML 파일 등)를 다운로드하십시오.
  • 콘텐츠가 올바르게 다운로드되면 스플래시 활동이 Webview 활동을 호출하여 인 텐트를 통해 필요한 데이터를 제공합니다.

이 방법은 일반적으로 인터넷 콘텐츠를 앱에로드하는 데 사용됩니다. 그것은 운영자가 얼어 붙은 활동을 보지 못하게하지만 프로세스가 진행 중임을 암시하는 창을 허용합니다.

here은 AsyncTask와 관련된 공식 정보입니다.

SplashScreen/AsyncTask/BackgroundProcess를 사용하는 고전적인 예는 RSS 리더입니다. here을 이해하는 데 도움이되는 소스 코드 (SplashScreenActivity 참조)를 찾으십시오.

이것은이를 수행하는 한 가지 방법이지만, 유일한 방법은 아닙니다.

+0

어떻게 할 수 있는지 보여주세요. ?? – njnjnj

+0

나는 donwload 할 수있는 예제를 게시했습니다! 그래서 당신은 당신의 PC에 전체 프로젝트를 가지고 있습니다! 나는 더 나은 학습 방법이 있다고 생각하지 않는다! –

0

Android 4.4 버전에서도 비슷한 문제가있었습니다. 이것은 나를 위해 일했습니다

webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

그것은 Kitkat 버전에 대한 webview의 일부 버그로 인해 발생합니다.