Cordova phonegap android应用程序不会退出

时间:2015-05-07 08:49:25

标签: android cordova jquery-mobile phonegap-plugins

我是phonegap cordova开发的新手。我在cordova的google帮助下制作了一个演示应用程序。我拿了一个名为exitapp的按钮并调用了函数navigator.app.exitApp()函数。它工作正常但是如果我添加一些mainActivity中的方法,java文件然后navigator.app.exitApp()函数不起作用。 我用了

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>

在html页面中。

我的活动代码是。

 package com.example.hello;
 import com.acl.paychamp.util.DecryptData;
 import com.example.hello.R;

 public class MainActivity extends CordovaActivity implements  
  CordovaInterface
 {
CordovaWebView cwv;
private final ExecutorService threadPool = Executors.newCachedThreadPool();
private CordovaPlugin activityResultCallback;
public static final String PASSKEY = "s407iejl";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.init();
    setContentView(R.layout.main);
    cwv = (CordovaWebView) findViewById(R.id.view);     
    cwv.loadUrl(this.launchUrl);
 }


 @Override
public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
    this.activityResultCallback = command;

    // Start activity
    super.startActivityForResult(intent, requestCode);
}

@Override
public void setActivityResultCallback(CordovaPlugin plugin) {
    this.activityResultCallback = plugin;
}

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

@Override
public Object onMessage(String id, Object data) {
    try {
        URI uri = new URI(data.toString());
        if (uri.toString().contains("http://abcd.com/pr?
     param=")) {
            String encryptedText = uri.getQuery().split("=")[1];
            JSONObject jObj = DecryptData.getDecryptedJson(encryptedText,
       PASSKEY);
            Log.i("CordovaApp", jObj.get("msg").toString());
            Log.i("CordovaApp", jObj.get("trxid").toString());
            cwv.loadUrl("file:///android_asset/www/status.htm?
       resparam="+encryptedText);

        }
    } catch (Exception use) {
    }
    return null;
   }

  @Override
    public ExecutorService getThreadPool() {
    return threadPool;

  }

 @Override
  protected void onActivityResult(final int requestCode, final int 
  resultCode, final Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    CordovaPlugin callback = this.activityResultCallback;
    if (callback != null) {
        callback.onActivityResult(requestCode, resultCode, intent);
    }
    }
   }

1 个答案:

答案 0 :(得分:0)

  

如果你的意思是通过最小化应用程序进入后台的应用程序(不是活动应用程序,但它仍然在运行的应用程序列表中)。如果这是你的意思,请注意这是Android和许多移动操作系统中的正常行为。

     

终止(如果您愿意,退出)应用程序不受应用程序开发人员的控制。它完全由操作系统管理(在本例中为Android)。所以,你拥有的是移动操作系统下应用程序的正常行为。

消息来源:navigator.app.exitapp() not working in android device