android webview 播放 flash 文件的生命周期注意

    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        hasAdobePlayer = checkPlugin();
        if (hasAdobePlayer == true) {
            setContentView(R.layout.player_screen); 
            mWebView = (FlashWebView) findViewById(R.id.playview);  
            mWebView.loadUrl(FLASHURL);
            //initJoyStick();
            addADView();
            addSplashView();
        } else {
        exit();
        }                
    }
    
    
    @Override
    protected void onPause() {        
        if (isFinishing()) {
            mWebView.loadUrl("about:blank");
            setContentView(new FrameLayout(this));

        }

//除了调用 callHiddenWebViewMethod("onPause")方法外还要调用mWebView.pauseTimers();才能恢复原来的状态继续播放

//注意两个方法调用的先后顺序,call先之后才是,pauseTimers

        callHiddenWebViewMethod("onPause");
        mWebView.pauseTimers();
        super.onPause();
    }
 
    @Override

    protected void onResume() {

//除了调用 callHiddenWebViewMethod("onResume")方法外还要调用mWebView.resumeTimers();才能恢复原来的状态继续播放

        //注意两个方法调用的先后顺序,call先之后才是,resumeTimers

        callHiddenWebViewMethod("onResume");
        mWebView.resumeTimers();
        super.onResume();
    }
    
    
    @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub    
    if(keyCode == KeyEvent.KEYCODE_BACK) {
    openExistDialog();
    return true;
    }   else {
    return super.onKeyDown(keyCode, event);
    }
}

    


void openExistDialog() {

   new AlertDialog.Builder(this)
    .setTitle(getResources().getString(R.string.installtitle))
    .setMessage(getResources().getString(R.string.exittitle))
    .setPositiveButton(getResources().getString(R.string.installok), 
    new DialogInterface.OnClickListener(){
     public void onClick(DialogInterface paramDialogInterface, int paramInt) {
     exit();
     }
   })
   .setNegativeButton(getResources().getString(R.string.installno), null)
   .create().show();
}




public void exit()  {

              //除了关掉本activity之后,还要调用System.exit(0),彻底退出,才可以回收巍峨bview资源
SuperJoyStickActivity.this.finish();
new Thread()  {
   public void run() {
       System.exit(0);
   }
}.start();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android WebView生命周期与Activity的生命周期密切相关,其主要有以下几个方法: 1. onCreate():在Activity创建时,初始化WebView。 2. onResume():WebView在前台运行,恢复WebView的状态。 3. onPause():WebView被挂起时,保存WebView的状态。 4. onDestroy():Activity被销毁时,销毁WebView。 下面我们来具体解释一下这些方法: 1. onCreate():在Activity的onCreate()方法中,我们需要初始化WebView,并设置WebView的一些属性。如下所示: ``` WebView webView = findViewById(R.id.webView); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient()); webView.loadUrl("https://www.example.com"); ``` 2. onResume():在Activity的onResume()方法中,我们需要恢复WebView的状态。如下所示: ``` @Override protected void onResume() { super.onResume(); webView.onResume(); } ``` 3. onPause():在Activity的onPause()方法中,我们需要保存WebView的状态。如下所示: ``` @Override protected void onPause() { super.onPause(); webView.onPause(); } ``` 4. onDestroy():在Activity的onDestroy()方法中,我们需要销毁WebView。如下所示: ``` @Override protected void onDestroy() { super.onDestroy(); if (webView != null) { webView.destroy(); } } ``` 需要注意的是,WebView在使用过程中可能会占用大量内存,因此在不需要使用WebView的时候,应该及时销毁WebView对象,释放内存资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值