2011-09-09 4 views
0

私はすべてのアクティビティでインターネットを使用するアプリケーションに取り組んでいます。私はすべてのアクティビティの接続を確認しています。しかし、n/w(インターネット)が間にどのように私が知ることができなくなった場合。ネットワークがアプリケーション中に消えたときにいつでも通知できる方法はありますか?各ActivityクラスのN/Wが結ばれている場合のハンドリング方法

答えて

1

あなたはアクティビティと対話することができますonReceive方法でこの放送受信機を追加することができ、これは、クラスが作成されたときに受信機がインスタンス化される。この方法例

public class MyActivity extends Activity { 
    private BroadcastReceiver receiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(...) { 
      ... 
     } 
    }); 

    public void onResume() { 
     super.onResume(); 

     IntentFilter filter = new IntentFilter(); 
     filter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); 

     this.registerReceiver(this.receiver, filter); 
    } 

    public void onPause() { 
     super.onPause(); 

     this.unregisterReceiver(this.receiver); 
    } 
} 

である(も行うことができますonCreateで)。次に、onResume/onPauseで、受信者の登録と登録解除を処理します。受信者のonReceiveメソッドでは、私が放送を受信したときのように、アクティビティを反応させるために必要なことは何でも行います。

+0

しかし、私はこのメソッドを呼び出すときだけ、接続をチェックします。私が望むのは、ネットワークがなくなった場合に通知できることです。 – Kamal

+0

は、放送受信機 を使用しようとする<受信機のandroid:名= アンドロイド "myBroadcastClass。":=有効 "真" アンドロイド:優先順位= "0"> <意図-フィルタ> <アクションアンドロイド:名= "アンドロイド。/ confucius

+0

コメントの代わりに新しい回答として投稿できますか? – Kamal

0

このリンクをチェックしてくださいBroadcast Intent when network state has changend;簡単なアドバイスでは、作成時には一度呼び出されますが、開始時にはより頻繁に呼び出されるため、ウルテストを開始してください。

関連する問題