2012-05-11 12 views
5

Sarebbe possibile mettere in pausa un'applicazione Android PhoneGap manualmente? Ho bisogno di mettere in pausa l'applicazione e andare in background quando qualcuno fa clic su un pulsante. Ho usato navigator.app.exitApp(); ma chiude completamente l'applicazione. Non voglio chiudere l'applicazione semplicemente scarico come è fatto con il pulsante back nativo. Per favore aiuto, grazie.Mettere in pausa manualmente un'applicazione in Android Phone Phone

+0

Che cosa si intende con pausa? Forse dai un'occhiata al Activites Lifecircle perchè non sono sicuro di cosa cerchi di ottenere :) http://developer.android.com/guide/topics/fundamentals/activities.html – yoshi

+0

Ho bisogno di mettere in pausa/fermare l'attività (L'app non dovrebbe essere visibile in forground) e l'app non dovrebbe essere visibile come quando si fa clic sul pulsante back nativo, si nasconde l'app. –

+1

Fondamentalmente vuoi lo stesso comportamento come se qualcuno avesse premuto il pulsante Home corretto? –

risposta

1

In Javascript:

// HomeButton 
cordova.define("cordova/plugin/homebutton", function (require, exports, module) { 
    var exec = require("cordova/exec"); 
    module.exports = { 
     show: function (win, fail) { 
      exec(win, fail, "HomeButton", "show", []); 
     } 
    }; 
}); 

E:

// HomeButton 
function homeButton() { 
    var home = cordova.require("cordova/plugin/homebutton"); 
    home.show(
     function() { 
      console.info("PhoneGap Plugin: HomeButton: callback success"); 
     }, 
     function() { 
      console.error("PhoneGap Plugin: HomeButton: callback error"); 
     } 
    ); 
} 

In Java su Android Native:

package org.apache.cordova.plugins; 

import org.apache.cordova.api.CallbackContext; 
import org.apache.cordova.api.CordovaPlugin; 
import org.apache.cordova.api.PluginResult; 
import org.json.JSONArray; 

import android.content.Intent; 
import android.util.Log; 

public class HomeButton extends CordovaPlugin { 

    public static final String LOG_PROV = "PhoneGapLog"; 
    public static final String LOG_NAME = "HomeButton Plugin"; 

    @Override 
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) { 
     Log.d(LOG_PROV, LOG_NAME + ": Simulated home button."); 
     Intent i = new Intent(Intent.ACTION_MAIN); 
     i.addCategory(Intent.CATEGORY_HOME); 
     this.cordova.startActivityForResult(this, i, 0); 
     callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK)); 
     return true; 
    } 

} 

chiamata con:

homeButton(); 

Funziona, ed è parte di un repo di mine: https://github.com/teusinkorg/jpHolo/

+0

Grazie, funziona come per magia –

3

Ecco una soluzione che è simile alla risposta di Joram Teusink, ma più facile perché non c'è bisogno di modificare manualmente il codice Java - è sufficiente installare un plugin con il PhoneGap/Cordova CLI.

Il plug-in una funzione: goHome(). Se lo chiami, l'app si fermerà, proprio come quando premi il tasto home.

Usage:

navigator.Backbutton.goHome(function() { 
    console.log('success - the app will now pause') 
}, function() { 
    console.log('fail') 
}); 

Installazione:

PhoneGap plug locale aggiungere https://github.com/mohamed-salah/phonegap-backbutton-plugin.git

Ecco la pagina GitHub:

https://github.com/mohamed-salah/phonegap-backbutton-plugin.git

Problemi correlati