Задать вопрос
vik_ewoods
@vik_ewoods

Как правильно использовать функции onPause & onResume для Activity с WebView?

Проблема в том что никак не могу понять как правильно воспользоваться onPause & onResume в Activity.
На сайте Android Developer нашел такой туториал.

Все сделать вроде бы так же....

package com.vikewoods.myweather;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class AboutActivity extends Activity {

	private final String aboutUri = "http://google.co.uk";
	private final String TAG_ABOUT = "MyWeather:AboutActivity";
	private WebView webView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_about);
		getActionBar().setTitle("About");
		webView = (WebView) findViewById(R.id.aboutWeb);
		webView.setDrawingCacheEnabled(true);
		webView.getSettings().setAppCacheEnabled(true);
		webView.getSettings().setJavaScriptEnabled(true);
		webView.loadUrl(aboutUri);
	}

	@Override
	protected void onPause(){
		super.onPause();
		if(webView != null){
			webView.clearCache(true);
			webView.clearHistory();
			webView.destroy();
			webView = null;
		}
	}

	@Override
	protected void onResume(){
		super.onResume();
		if(webView == null){
			webView.setDrawingCacheEnabled(true);
			webView.getSettings().setAppCacheEnabled(true);
			webView.getSettings().setJavaScriptEnabled(true);
			webView.loadUrl(aboutUri);
		}
	}
}


но при возращении в MainActivity получаем -> Unfortunately, My Weather has stopped

07-02 15:15:02.160  32432-32432/com.vikewoods.myweather I/am_on_paused_called﹕ [0,com.vikewoods.myweather.AboutActivity]
07-02 15:15:02.170  32432-32451/com.vikewoods.myweather A/libc﹕ Fatal signal 11 (SIGSEGV), code 1, fault addr 0x9 in tid 32451 (RenderThread)


Device:
Nexus 5 - Android L Developer Preview Build LPV79
OS:
Mac OS X 10.9.4 + Android Studio Beta 0.8.1


Помогите понять что же не так....
  • Вопрос задан
  • 3625 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@bimeg
На самом деле предполагалось нечто такое:

protected void onPause()
{
    super.onPause();

    webView.onPause();
}

protected void onResume()
{
    super.onResume();

    webView.onResume();
}
Ответ написан
Комментировать
vik_ewoods
@vik_ewoods Автор вопроса
@bimeg при таком варианте получается

07-02 17:12:32.771  14688-14688/com.vikewoods.myweather I/am_on_resume_called﹕ [0,com.vikewoods.myweather.MainActivity]
07-02 17:12:33.205  14688-14688/com.vikewoods.myweather E/chromium﹕ [ERROR:aw_contents.cc(814)] Unable to free GL resources. Has the Window leaked?


для этого и хотелось бы правильно реализовать onPause & onResume =(

@Skull-proga с таким вариантом оставив только onPause

@Override
	protected void onPause(){
		super.onPause();
		if(webView != null){
			webView.clearCache(true);
			webView.clearHistory();
			webView.destroy();
			//webView = null;
		}
//		webView.onPause();
	}


07-02 17:17:22.182  16493-16493/com.vikewoods.myweather I/am_on_paused_called﹕ [0,com.vikewoods.myweather.AboutActivity]
07-02 17:17:22.197  16493-16522/com.vikewoods.myweather A/libc﹕ Fatal signal 11 (SIGSEGV), code 2, fault addr 0xb8a7c058 in tid 16522 (RenderThread)


Видео
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы