OnPause不执行cordova / phonegap中的代码:(((

时间:2014-07-15 14:05:49

标签: android cordova webview phonegap-plugins cordova-2.0.0

已经过了一个星期,我仍然遇到将cordova整合到一个ndroid webview中的问题! 在onPause和onResume工作正常之前,但在集成之后它们不再触发。 即使我在我的控制台中看到了这一点:

07-15 17:01:21.880: D/CordovaActivity(5635): Paused the application!
07-15 17:01:21.880: D/CORDOVA_ACTIVITY(5635): onPause

但是opPause函数中的代码没有执行!!我真的厌倦了这一点..我试了一个星期不停地让它运转起来。

这是我的主要java文件:

package com.Snap.What;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.webkit.JavascriptInterface;

import org.apache.cordova.*;

public class WhatSnap extends CordovaActivity implements CordovaInterface
{
    private CordovaWebView cordova_webview;
    private String TAG = "CORDOVA_ACTIVITY";
    private final ExecutorService threadPool = Executors.newCachedThreadPool();

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cordova_layout);
        cordova_webview = (CordovaWebView) findViewById(R.id.cordova_web_view);
        // Config.init(this); 
        cordova_webview.loadUrl("file:///android_asset/www/index.html");
        JavaScriptInterface jsInterface = new JavaScriptInterface(this);
        cordova_webview.getSettings().setJavaScriptEnabled(true);
        cordova_webview.addJavascriptInterface(jsInterface, "JSInterface");


    }





    public class JavaScriptInterface {
        private Activity activity;

        public JavaScriptInterface(Activity activiy) {
            this.activity = activiy;
        }

        @JavascriptInterface
        public void showLog(){
            Log.v("blah", "blah blah");
        }


    }


    @Override 
    protected void onPause() { 
        super.onPause(); 
        Log.d(TAG, "onPause");
    } 

    @Override 
    protected void onResume() { 
        super.onResume(); 
        Log.d(TAG, "onResume");
    } 


    @Override
    public void onDestroy() { 
        super.onDestroy(); 
        if (this.cordova_webview != null) {
            this.cordova_webview
                    .loadUrl("javascript:try{cordova.require('cordova/channel').onDestroy.fire();}catch(e){console.log('exception firing destroy event from native');};"); 
            this.cordova_webview.loadUrl("about:blank");
            cordova_webview.handleDestroy();
        } 
    } 



    @Override 
    public Activity getActivity() {
        return this;
    } 


    @Override 
    public ExecutorService getThreadPool() {
        return threadPool;
    } 


    @Override 
    public Object onMessage(String message, Object obj) {
        Log.d(TAG, message);
        if (message.equalsIgnoreCase("exit")) {
            super.finish(); 
        } 
        return null; 
    } 
//
//
//    @Override 
//    public void setActivityResultCallback(CordovaPlugin cordovaPlugin) {
//        Log.d(TAG, "setActivityResultCallback is unimplemented");
//    } 


//    @Override 
//    public void startActivityForResult(CordovaPlugin cordovaPlugin,
//            Intent intent, int resultCode) {
//        Log.d(TAG, "startActivityForResult is unimplemented");
//    } 


}

我还尝试用java来评论onPause和onresume,但我只是在控制台中得到这个:

07-15 17:01:21.880: D/CordovaActivity(5635): Paused the application!

在我的js中,我有以下几行:

 document.addEventListener("resume", onResume, false);
    document.addEventListener("pause", punish, false);

以及WONT EXECUTE的相应功能!

我真的不知道为什么他们没有执行..请看看你有任何想法请告诉我。

1 个答案:

答案 0 :(得分:0)

这是一个旧帖子,如果有人关注

更改

document.addEventListener("pause", punish, false);

document.addEventListener("pause", onPause, false);