即使在按下后退按钮后,Flash视频也会继续播放

时间:2011-11-10 03:17:31

标签: android android-activity

所以我创建了一个WebView并将内容设置为一个类似于html的字符串(当用户按下ListView项时调用它):

String html = "<html>" +
    "<body style=\"padding:0px;margin:0px;border:0px none;\">" +
    "<embed type=\"application/x-shockwave-flash\"" +
    " id=\"stratos_embed\"" +
    " width=\"100%25\" height=\"100%25"\"" + //%25 = % (escaped)
    " src=\"myVideoSource.swf\"" +
     " pluginspage=\"http://www.macromedia.com/go/getflashplayer\"" +
     " allowfullscreen=\"true\" allowscriptaccess=\"always\">" +
     "</embed>" +
"</body></html>";


Intent intent = new Intent(getBaseContext(), VideoActivity.class);
intent.putExtra("VIDEO_CONTENT", html);
this.startActivity(intent);

我可以在网络视频中观看Flash视频,而且一切都很花哨。

问题是当我按下后退按钮时视频继续播放(我可以听到音频),但我不想这样做。

我读过有关使用finish()来杀死活动但我不知道在哪里使用它。我把它放在我的VideoActivity类中,如下所示:

@Override
public void onPause(){
    finish();
}

但是当我按下后退按钮时,会发生错误并强制关闭应用程序。

2 个答案:

答案 0 :(得分:4)

对于Honeycomb +目标,您可以在活动的onPause()onResume()中添加对WebView的onPause()onResume()的调用:

// assuming mWebView is assigned in onCreate() ..

@Override
public void onPause() {
    super.onPause();
    mWebView.onPause();
}

@Override
public void onResume() {
    super.onResume();
    mWebView.onResume();
}

或者(因为这些方法对于早期目标是隐藏的),以下内容也应该起作用:

@Override
protected void onDestroy() {
    super.onDestroy();
    mWebView.loadUrl("about:blank");
}

答案 1 :(得分:0)

以上方法对我不起作用,我遇到了另一篇发布业务的帖子here

try {
    Class.forName("android.webkit.WebView")
            .getMethod("onPause", (Class[]) null)
                        .invoke(webview, (Object[]) null);
} catch(Exception e) {}