2016-04-22 12 views
-2

インターネット接続をチェックするためのブロードキャストレシーバがあります。インターネット接続がない場合は、インテントによるエラー画面が表示されます。ネットワークが再接続されたときにエラー画面を閉じ、ネットワークが消えた前の画面を表示する必要があります。ブロードキャストレシーバでのアクティビティの終了

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     isConnected = intent.getBooleanExtra(ConnectionDetector.CONNECTED_KEY, false); 
     if(isConnected){ 
      System.out.println("A1"); 
      finish(); 
     } 
     if (intent.getAction().equals(CONNECTION_BROADCAST_ACTION)) { 
      System.out.println("A2"); 
      No_Network.this.finish(); 
     } 
    } 
}; 

これはエラー画面内のコードです。ここで活動を終わらせるには? finish()が機能していません。

+0

あなたのアクティビティにキャストされる 'context.finish();'を使うべきです。 – Piyush

+0

context.finish()はエラーが完了()を解決できないことを示します –

+0

あなたのアクティビティをキャストする必要があります。 BRはあなたの活動に含まれていますか、それとも外側のカスタムクラスですか? – Piyush

答えて

0

ここのアクティビティを終了するにはどうすればよいですか? finish()が機能していません。

正しく使用していないため、「動作しません」です。正しい方法は、アクティビティに通知し、finish()自身に通知することです。自分の "魔法の"コードで意図をあなたの活動に直接送ることでそれを行うことができます(起動モードがsingleTopの場合はstartActivity() + onNewIntent()で十分です)。また、イベントバスを使用して通信してください。

+0

を呼んでください。私は理解できませんでした –

関連する問題