Make sure callback handler is in place before callbacks handled.
When making Network requests in ConnectivityManager, make sure we install the callback prior to a response from ConnectivityService arriving causing us to search for the callback and inadvertently not find it. bug:15928097 Change-Id: Ie5feb9cc8f5effc19870f54dba07218b2e11d82a
This commit is contained in:
@@ -2208,15 +2208,15 @@ public class ConnectivityManager {
|
||||
if (need == null) throw new IllegalArgumentException("null NetworkCapabilities");
|
||||
try {
|
||||
incCallbackHandlerRefCount();
|
||||
if (action == LISTEN) {
|
||||
networkCallback.networkRequest = mService.listenForNetwork(need,
|
||||
new Messenger(sCallbackHandler), new Binder());
|
||||
} else {
|
||||
networkCallback.networkRequest = mService.requestNetwork(need,
|
||||
new Messenger(sCallbackHandler), timeoutSec, new Binder(), legacyType);
|
||||
}
|
||||
if (networkCallback.networkRequest != null) {
|
||||
synchronized(sNetworkCallback) {
|
||||
synchronized(sNetworkCallback) {
|
||||
if (action == LISTEN) {
|
||||
networkCallback.networkRequest = mService.listenForNetwork(need,
|
||||
new Messenger(sCallbackHandler), new Binder());
|
||||
} else {
|
||||
networkCallback.networkRequest = mService.requestNetwork(need,
|
||||
new Messenger(sCallbackHandler), timeoutSec, new Binder(), legacyType);
|
||||
}
|
||||
if (networkCallback.networkRequest != null) {
|
||||
sNetworkCallback.put(networkCallback.networkRequest, networkCallback);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user