|
10 | 10 | import javax.annotation.Nullable;
|
11 | 11 |
|
12 | 12 | import android.app.Activity;
|
| 13 | +import android.content.BroadcastReceiver; |
| 14 | +import android.content.Context; |
13 | 15 | import android.content.Intent;
|
| 16 | +import android.content.IntentFilter; |
| 17 | +import android.net.ConnectivityManager; |
| 18 | +import android.net.NetworkInfo; |
| 19 | +import android.os.AsyncTask; |
14 | 20 | import android.os.Bundle;
|
15 | 21 | import android.view.KeyEvent;
|
16 | 22 |
|
17 | 23 | import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
|
18 | 24 | import com.facebook.react.modules.core.PermissionAwareActivity;
|
19 | 25 | import com.facebook.react.modules.core.PermissionListener;
|
| 26 | +import com.facebook.react.modules.network.OkHttpClientProvider; |
20 | 27 |
|
21 | 28 | /**
|
22 | 29 | * Base Activity for React Native applications.
|
@@ -46,10 +53,33 @@ protected ReactActivityDelegate createReactActivityDelegate() {
|
46 | 53 | return new ReactActivityDelegate(this, getMainComponentName());
|
47 | 54 | }
|
48 | 55 |
|
| 56 | + private class EvictIdleConnectionsTask extends AsyncTask { |
| 57 | + @Override |
| 58 | + protected Object doInBackground(Object[] objects) { |
| 59 | + OkHttpClientProvider.getOkHttpClient().connectionPool().evictAll(); |
| 60 | + return null; |
| 61 | + } |
| 62 | + } |
| 63 | + |
49 | 64 | @Override
|
50 | 65 | protected void onCreate(Bundle savedInstanceState) {
|
51 | 66 | super.onCreate(savedInstanceState);
|
52 | 67 | mDelegate.onCreate(savedInstanceState);
|
| 68 | + |
| 69 | + BroadcastReceiver br = new BroadcastReceiver() { |
| 70 | + @Override |
| 71 | + public void onReceive(Context context, Intent intent) { |
| 72 | + Bundle extras = intent.getExtras(); |
| 73 | + NetworkInfo info = extras.getParcelable("networkInfo"); |
| 74 | + NetworkInfo.State state = info.getState(); |
| 75 | + if (state == NetworkInfo.State.DISCONNECTED) { |
| 76 | + new EvictIdleConnectionsTask().execute(); |
| 77 | + } |
| 78 | + } |
| 79 | + }; |
| 80 | + final IntentFilter intentFilter = new IntentFilter(); |
| 81 | + intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); |
| 82 | + getApplicationContext().registerReceiver(br, intentFilter); |
53 | 83 | }
|
54 | 84 |
|
55 | 85 | @Override
|
|
0 commit comments