2016-10-19 2 views
0

Ich rufe checkinternet Verbindungsmethode. Code der Java-Klasse mit Checkinternet-Methode ist unten.Fehler System Service Nicht verfügbar vor oncreate

public class PTs { 

    private Context context; 

    public PT(Context context) { 
     this.context = context; 
    } 

    public Boolean checkinternet() { 

     ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
     NetworkInfo activeinternet = connectivityManager.getActiveNetworkInfo(); 
     return activeinternet != null && activeinternet.isConnected(); 

    } 

während ich verwende if-Anweisung wie im folgenden Internet-Status in anderer Aktivität zu erhalten.

if (pt.checkinternet()){ 
//do some task 
} 

Warum Fehler bekommen kann jemand helfen.

+0

Bitte zeigen eine Context als Parameter, wie Sie gett sind das 'pt'-Objekt. – CommonsWare

+0

Öffentliche Klasse StartupActivity erweitert AppCompatActivity { PT pt = new PT(); @Override geschützter void onCreate (Bundle savedInstanceState) { // Rest des Codes für die Klasse. –

Antwort

0

Nie Erstellen Sie eine Instanz einer Aktivität, eines Service oder eines Providers selbst über einen Konstruktor. Die Aktivität wurde nicht ordnungsgemäß initialisiert und Sie können daher getSystemService() nicht aufrufen.

Optionen, dies zu beheben sind:

  • Verschieben dieser Code in eine bestehende Aktivität, eine, die richtig von Rahmen gestartet wird, und verwenden Sie nur diese Methode aus dieser Tätigkeit

  • entfernen extends AppCompatActivity von PT und haben checkinternet()

+0

öffentliche Klasse PT { public Boolesches Checkinternet (Kontextkontext) { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService (CONNECTIVITY_SERVICE); NetworkInfo activeinternet = connektivityManager.getActiveNetworkInfo(); zurück activeinternet! = Null && activeinternet.isConnected(); } mit dieser Korrektur immer noch Fehler in getSystemService erhalten. Alles, was ich noch erwähnen wollte. –

+0

Auch der aufrufende Code wurde aktualisiert als (performanceTweaks.checkinternet (StartupActivity.this)) –

+0

@AnkurJain: Vermutlich rufen Sie 'checkinternet()' auf, bevor 'onCreate()' von 'StartupActivity' aufgerufen wird. – CommonsWare

Verwandte Themen