2016-10-19 5 views
0

私はcheckinternetの接続方法を呼び出しています。チェックインネットメソッドを持つJavaクラスのコードは以下の通りです。エラーシステムサービス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(); 

    } 

私は他のアクティビティでインターネット状態を取得するために以下のif文を使用しています。

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

なぜエラーが発生するのですか?誰かが助けてくれるのですか?

+0

としてContextを取るcheckinternet()持っているあなたがGETTどのように提示してください'pt'オブジェクトを作成します。 – CommonsWare

+0

public class StartupActivity extends AppCompatActivity { PT pt = new PT(); @Override protected void onCreate(Bundle savedInstanceState){ //クラスの残りのコード。 –

答えて

0

コンストラクタを使用して、アクティビティ、サービス、またはプロバイダのインスタンスを自分で作成します。アクティビティが正しく初期化されていないため、getSystemService()を呼び出すことはできません。既存のアクティビティに

  • 移動し、このコード、フレームワークによって適切に開始されたものを、とだけ

  • extends AppCompatActivityを削除することを活動の中から、そのメソッドを使用します。この問題を解決するために

    オプションには、 PTからパラメータ

+0

パブリッククラスPT { public Boolean checkinternet(コンテキストコンテキスト){ ConnectivityManager connectivityManager =(ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE); NetworkInfo activeinternet = connectivityManager.getActiveNetworkInfo(); return activeinternet!= null && activeinternet.isConnected(); }これらの修正では、getSystemServiceでエラーが発生します。私が言いたかったことは何でも。 –

+0

また、(performanceTweaks.checkinternet(StartupActivity.this)) –

+0

として呼び出しコードを更新しました。@AnkurJain: 'StartupActivity'の' onCreate() 'が呼び出される前に' checkinternet() 'を呼び出すと思われます。 – CommonsWare

関連する問題