0

画面のタイムアウト時に WebView を引き続き有効にするソリューションを見つけたいと思います。

私は WebView を使用して音楽を再生するプログラムです。画面が生きている場合は非常に正常に動作しますが、画面がタイムアウトすると、WebView の音楽も消えてしまいます。

これが私のコードです:

public class WebViewActivity extends Activity {

WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.playlist);

    mWebView = (WebView) findViewById(R.id.webView1);
    mWebView.setWebViewClient(new HelloWebViewClient());
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.loadUrl("http://mp3skull.com/usher.html");
}
private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        mWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
@Override
public void onPause()
{
    mWebView.setVisibility(View.GONE);
    mWebView.destroy();
    super.onPause();
}
 }

1週間以上この解決策を見つけようとしましたが、まだできません:(。

この問題について解決策を教えてください。

ありがとうございます。

4

1 に答える 1

0

以下のコードのように、クラスの onPause() メソッドを削除します。

public class WebViewActivity extends Activity {

WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.playlist);

    mWebView = (WebView) findViewById(R.id.webView1);
    mWebView.setWebViewClient(new HelloWebViewClient());
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.loadUrl("http://mp3skull.com/usher.html");
}
private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        mWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
}
于 2012-06-06T04:12:07.230 に答える