0

我制作了一个 android 应用程序,它有一个从 assets 文件夹加载 flash 游戏的 webview。一切正常,但当我离开游戏时,声音一直在响。我试图在按下后退按钮时完成活动,但它是一样的。

package com.example.flashgame;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends Activity {
WebView mWebView;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    mWebView.setBackgroundColor(Color.parseColor("#000000"));
    mWebView.loadUrl("file:///android_asset/game.swf");
    }
}
4

1 回答 1

0

问题是,虽然您可能调用finish()了 Activity,但垃圾收集器不一定会立即收集您的 Activity,这会导致您创建的对象(例如任何MediaPlayer对象或类似对象)徘徊一段时间 - 其中包括您的WebView.

问题通常是人们需要stop()在您调用“finish()”之前对您的 Flash 游戏/音频对象进行调用或类似操作,这将导致它们实际上停止而不是在系统中闲逛等待它们被垃圾收集。在您的情况下,您可能需要将nullurl 加载到您的 webview 或类似内容中以阻止 Flash 游戏运行

于 2013-03-12T13:52:13.760 回答