diff options
| author | 2025-01-16 18:59:46 +0000 | |
|---|---|---|
| committer | 2025-01-17 14:52:58 -0800 | |
| commit | 6d3d2904e52a7dd6c2bd7b306aa197cf8d56fba3 (patch) | |
| tree | 66e82f08340fcb689cc70e244fd2efae86a83a22 | |
| parent | 34303f98f0e2e203ae72bf7355c0e2e9e5fff972 (diff) | |
Wrap service connection in try-catch block
Exceptions might be thrown when binding/unbinding to the service which
should be handled to avoid crash.
Test: Manual
Bug: 389127703
Flag: EXEMPT bug fix
Change-Id: I6231733a9b59235612d1e9b8e6b6ed4995126600
| -rw-r--r-- | core/java/android/appwidget/AppWidgetManager.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java index 67ad4594599f..b54e17beb100 100644 --- a/core/java/android/appwidget/AppWidgetManager.java +++ b/core/java/android/appwidget/AppWidgetManager.java @@ -1684,10 +1684,14 @@ public class AppWidgetManager { private IBinder mIBinder; ConnectionTask(@NonNull FilterComparison filter) { - mContext.bindService(filter.getIntent(), - Context.BindServiceFlags.of(Context.BIND_AUTO_CREATE), - mHandler::post, - this); + try { + mContext.bindService(filter.getIntent(), + Context.BindServiceFlags.of(Context.BIND_AUTO_CREATE), + mHandler::post, + this); + } catch (Exception e) { + Log.e(TAG, "Error connecting to service in connection cache", e); + } } @Override @@ -1737,7 +1741,11 @@ public class AppWidgetManager { handleNext(); return; } - mContext.unbindService(this); + try { + mContext.unbindService(this); + } catch (Exception e) { + Log.e(TAG, "Error unbinding the cached connection", e); + } mActiveConnections.values().remove(this); } } |