diff options
author | Mengjun Leng <mengju@codeaurora.org> | 2016-10-31 13:07:01 +0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-11-08 18:58:56 -0800 |
commit | 15bce2b5b5103e152984e18371716dc65b62e6f9 (patch) | |
tree | be90387378197938ee6b01e4cf90c6600a1199c8 /src | |
parent | 5652768ab9cffe9073589b3fee4820e6e020c694 (diff) | |
download | android_packages_apps_Dialer-15bce2b5b5103e152984e18371716dc65b62e6f9.tar.gz android_packages_apps_Dialer-15bce2b5b5103e152984e18371716dc65b62e6f9.tar.bz2 android_packages_apps_Dialer-15bce2b5b5103e152984e18371716dc65b62e6f9.zip |
Fix DialtactsActivity leaks
The CallLogFragment attaches to ViewPager, and does not show by default,
so it still stay in pause status. If straight exiting Activity, the
method onPause is not called so that the query thread cannot be interrupted.
The class QueryThread is inner class that holds the instance of ContactInfoCache.
But the member mContactInfoHelper of ContactInfoCache already holds the context
of DialtactsActivity so that the instance of DialtactsActivity cannot be recycled.
In order to avoid it, must stop the query thread in the method onStop.
Change-Id: I0bbbf25b95ae82a2d67152edd07c4f7c14498917
CRs-Fixed: 1083453
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/calllog/CallLogAdapter.java | 7 | ||||
-rw-r--r-- | src/com/android/dialer/calllog/CallLogFragment.java | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java index 462b03681..a1ec0b358 100644 --- a/src/com/android/dialer/calllog/CallLogAdapter.java +++ b/src/com/android/dialer/calllog/CallLogAdapter.java @@ -380,6 +380,13 @@ public class CallLogAdapter extends GroupingListAdapter } } + public void onStop () { + pauseCache(); + if (mHiddenItemUri != null) { + CallLogAsyncTaskUtil.deleteVoicemail(mContext, mHiddenItemUri, null); + } + } + @VisibleForTesting /* package */ void pauseCache() { mContactInfoCache.stop(); diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java index b44d8ca6b..96551a4b4 100644 --- a/src/com/android/dialer/calllog/CallLogFragment.java +++ b/src/com/android/dialer/calllog/CallLogFragment.java @@ -354,14 +354,13 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis @Override public void onPause() { cancelDisplayUpdate(); - mAdapter.onPause(); super.onPause(); } @Override public void onStop() { updateOnTransition(); - + mAdapter.onStop(); super.onStop(); } |