11

Ho questa funzione quale connessionenon può fare riferimento statico al metodo getSystemService non statico (stringa) dal tipo

public boolean isNetworkConnected() { 
    ConnectivityManager conManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = conManager.getActiveNetworkInfo(); 

    if (netInfo == null) { 
     // There are no active networks. 
     return false; 
    } else { 
     return true; 
    } 
} 

rete Ma quando ia cercando di rendere statico in modo che posso usare in ogni attività è gettando:

non può fare riferimento statico al metodo non statico getSystemService (stringa) dal tipo

Non voglio creare l'oggetto della classe ogni volta.

risposta

25

Aggiungere le dipendenze non statici come parametri:

public static boolean isNetworkConnected(Context c) { 
     ConnectivityManager conManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = conManager.getActiveNetworkInfo(); 
     return (netInfo != null && netInfo.isConnected()); 
} 
+0

grazie per l'aiuto – Developer

2

getSystemService è un metodo non statico della classe Context, quindi per accedervi è necessario un oggetto dalla classe Context.Typically lo chiamate dall'interno di un ACTIVITA dove this è anche un oggetto di Context. Al fine di risolvere potreste passare un contesto per il metodo di isNetworkConnected

+0

Non è ancora chiaro –

+0

@marthajames quale parte esatta di "passare un contesto al metodo" non è chiara? – Blackbelt

0

Ora possiamo usare la funzione statica getContext() per ottenere il contesto che eredita da Cocos2dxActivity.java

+1

Si prega di fornire un esempio di utilizzo –