question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Memory leak in empty activity on Android 7.0

See original GitHub issue

I have empty start activity, that redirects to other. On Android 7.0 (OnePlus 3T, OxygenOS 4.0.3) I started to get frequently memory leak report for it. I don’t see same leak on other Android versions and phones.

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        if(!isTaskRoot()) {
            super.onCreate(savedInstanceState);
            finish();
            return;
        } else {
            Intent intent = getTargetIntent();
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);

            super.onCreate(savedInstanceState);
        }

        finish();
        overridePendingTransition(0, 0);
    }

    private Intent getTargetIntent() {
        Intent intent;

        if (!AppSession.getInstance().isLoggedIn()) {
            intent = new Intent(this, WelcomeScreenActivity.class);
        } else {
            intent = new Intent(this, ContentActivity.class);
        }

        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        return intent;
    }

}

And log:

03-16 13:50:50.479 D/LeakCanary: * im.example.app.ui.activities.MainActivity has leaked:
03-16 13:50:50.479 D/LeakCanary: * GC ROOT android.view.accessibility.AccessibilityManager$1.this$0 (anonymous subclass of android.view.accessibility.IAccessibilityManagerClient$Stub)
03-16 13:50:50.479 D/LeakCanary: * references android.view.accessibility.AccessibilityManager.mContext
03-16 13:50:50.479 D/LeakCanary: * references com.android.internal.policy.DecorContext.mPhoneWindow
03-16 13:50:50.479 D/LeakCanary: * references com.android.internal.policy.PhoneWindow.mContext
03-16 13:50:50.479 D/LeakCanary: * leaks im.example.app.ui.activities.MainActivity instance
03-16 13:50:50.479 D/LeakCanary: * Retaining: 6.0 KB.
03-16 13:50:50.479 D/LeakCanary: * Reference Key: 904592ad-79fb-4cd9-bfb0-3a504f3f6cd1
03-16 13:50:50.479 D/LeakCanary: * Device: OnePlus OnePlus ONEPLUS A3010 OnePlus3
03-16 13:50:50.479 D/LeakCanary: * Android Version: 7.0 API: 24 LeakCanary: 1.5 00f37f5
03-16 13:50:50.479 D/LeakCanary: * Durations: watch=5006ms, gc=166ms, heap dump=1556ms, analysis=77645ms
03-16 13:50:50.479 D/LeakCanary: * Details:
03-16 13:50:50.479 D/LeakCanary: * Instance of android.view.accessibility.AccessibilityManager$1
03-16 13:50:50.479 D/LeakCanary: |   static $classOverhead = byte[744]@1877842785 (0x6fed9b61)
03-16 13:50:50.479 D/LeakCanary: |   this$0 = android.view.accessibility.AccessibilityManager@316122832 (0x12d7a6d0)
03-16 13:50:50.479 D/LeakCanary: |   mDescriptor = java.lang.String@1870204888 (0x6f790fd8)
03-16 13:50:50.479 D/LeakCanary: |   mObject = 548269737120
03-16 13:50:50.479 D/LeakCanary: |   mOwner = android.view.accessibility.AccessibilityManager$1@315653824 (0x12d07ec0)
03-16 13:50:50.479 D/LeakCanary: |   shadow$_klass_ = android.view.accessibility.AccessibilityManager$1
03-16 13:50:50.479 D/LeakCanary: |   shadow$_monitor_ = 0
03-16 13:50:50.479 D/LeakCanary: * Instance of android.view.accessibility.AccessibilityManager
03-16 13:50:50.479 D/LeakCanary: |   static STATE_FLAG_TOUCH_EXPLORATION_ENABLED = 2
03-16 13:50:50.479 D/LeakCanary: |   static sInstanceSync = java.lang.Object@1868378840 (0x6f5d32d8)
03-16 13:50:50.479 D/LeakCanary: |   static DEBUG = false
03-16 13:50:50.479 D/LeakCanary: |   static AUTOCLICK_DELAY_DEFAULT = 600
03-16 13:50:50.479 D/LeakCanary: |   static LOG_TAG = java.lang.String@1872110800 (0x6f9624d0)
03-16 13:50:50.479 D/LeakCanary: |   static sInstance = android.view.accessibility.AccessibilityManager@316122832 (0x12d7a6d0)
03-16 13:50:50.480 D/LeakCanary: |   static DALTONIZER_DISABLED = -1
03-16 13:50:50.480 D/LeakCanary: |   static STATE_FLAG_ACCESSIBILITY_ENABLED = 1
03-16 13:50:50.480 D/LeakCanary: |   static STATE_FLAG_HIGH_TEXT_CONTRAST_ENABLED = 4
03-16 13:50:50.480 D/LeakCanary: |   static DALTONIZER_CORRECT_DEUTERANOMALY = 12
03-16 13:50:50.480 D/LeakCanary: |   static $classOverhead = byte[785]@1876949361 (0x6fdff971)
03-16 13:50:50.480 D/LeakCanary: |   static DALTONIZER_SIMULATE_MONOCHROMACY = 0
03-16 13:50:50.480 D/LeakCanary: |   mAccessibilityStateChangeListeners = java.util.concurrent.CopyOnWriteArrayList@316802656 (0x12e20660)
03-16 13:50:50.480 D/LeakCanary: |   mClient = android.view.accessibility.AccessibilityManager$1@315653824 (0x12d07ec0)
03-16 13:50:50.480 D/LeakCanary: |   mContext = com.android.internal.policy.DecorContext@316122928 (0x12d7a730)
03-16 13:50:50.480 D/LeakCanary: |   mHandler = android.view.accessibility.AccessibilityManager$MyHandler@315653856 (0x12d07ee0)
03-16 13:50:50.480 D/LeakCanary: |   mHighTextContrastStateChangeListeners = java.util.concurrent.CopyOnWriteArrayList@316802688 (0x12e20680)
03-16 13:50:50.480 D/LeakCanary: |   mIsEnabled = false
03-16 13:50:50.480 D/LeakCanary: |   mIsHighTextContrastEnabled = false
03-16 13:50:50.480 D/LeakCanary: |   mIsTouchExplorationEnabled = false
03-16 13:50:50.480 D/LeakCanary: |   mLock = java.lang.Object@315040464 (0x12c722d0)
03-16 13:50:50.480 D/LeakCanary: |   mService = android.view.accessibility.IAccessibilityManager$Stub$Proxy@316802720 (0x12e206a0)
03-16 13:50:50.480 D/LeakCanary: |   mTouchExplorationStateChangeListeners = java.util.concurrent.CopyOnWriteArrayList@316802672 (0x12e20670)
03-16 13:50:50.480 D/LeakCanary: |   mUserId = 0
03-16 13:50:50.480 D/LeakCanary: |   shadow$_klass_ = android.view.accessibility.AccessibilityManager
03-16 13:50:50.480 D/LeakCanary: |   shadow$_monitor_ = 0
03-16 13:50:50.480 D/LeakCanary: * Instance of com.android.internal.policy.DecorContext
03-16 13:50:50.480 D/LeakCanary: |   static $classOverhead = byte[1888]@1877746737 (0x6fec2431)
03-16 13:50:50.480 D/LeakCanary: |   mActivityResources = android.content.res.Resources@316330560 (0x12dad240)
03-16 13:50:50.480 D/LeakCanary: |   mPhoneWindow = com.android.internal.policy.PhoneWindow@315381600 (0x12cc5760)
03-16 13:50:50.480 D/LeakCanary: |   mWindowManager = null
03-16 13:50:50.480 D/LeakCanary: |   mInflater = null
03-16 13:50:50.480 D/LeakCanary: |   mOverrideConfiguration = null
03-16 13:50:50.480 D/LeakCanary: |   mResources = null
03-16 13:50:50.480 D/LeakCanary: |   mTheme = android.content.res.Resources$Theme@316802576 (0x12e20610)
03-16 13:50:50.480 D/LeakCanary: |   mThemeResource = 2131361857
03-16 13:50:50.480 D/LeakCanary: |   mBase = im.example.app.App@315308544 (0x12cb3a00)
03-16 13:50:50.480 D/LeakCanary: |   shadow$_klass_ = com.android.internal.policy.DecorContext
03-16 13:50:50.480 D/LeakCanary: |   shadow$_monitor_ = 0
03-16 13:50:50.480 D/LeakCanary: * Instance of com.android.internal.policy.PhoneWindow
03-16 13:50:50.480 D/LeakCanary: |   static USE_DEFAULT_TRANSITION = android.transition.TransitionSet@1958606848 (0x74bdf800)
03-16 13:50:50.480 D/LeakCanary: |   static ACCESSIBILITY_FOCUSED_ID_TAG = java.lang.String@1872202680 (0x6f978bb8)
03-16 13:50:50.480 D/LeakCanary: |   static FLAG_RESOURCE_SET_LOGO = 2
03-16 13:50:50.480 D/LeakCanary: |   static PANELS_TAG = java.lang.String@1872234648 (0x6f980898)
03-16 13:50:50.480 D/LeakCanary: |   static TAG = java.lang.String@1872213600 (0x6f97b660)
03-16 13:50:50.480 D/LeakCanary: |   static FLAG_RESOURCE_SET_ICON_FALLBACK = 4
03-16 13:50:50.480 D/LeakCanary: |   static ACTION_BAR_TAG = java.lang.String@1872236544 (0x6f981000)
03-16 13:50:50.480 D/LeakCanary: |   static FLAG_RESOURCE_SET_ICON = 1
03-16 13:50:50.480 D/LeakCanary: |   static DEBUG = false
03-16 13:50:50.480 D/LeakCanary: |   static FOCUSED_ID_TAG = java.lang.String@1872220400 (0x6f97d0f0)
03-16 13:50:50.480 D/LeakCanary: |   static VIEWS_TAG = java.lang.String@1872234600 (0x6f980868)
03-16 13:50:50.480 D/LeakCanary: |   static $classOverhead = byte[2137]@1876828481 (0x6fde2141)
03-16 13:50:50.480 D/LeakCanary: |   static ACCESSIBILITY_FOCUSED_VIRTUAL_ID_TAG = java.lang.String@1872216568 (0x6f97c1f8)
03-16 13:50:50.480 D/LeakCanary: |   static CUSTOM_TITLE_COMPATIBLE_FEATURES = 13505
03-16 13:50:50.480 D/LeakCanary: |   static DEFAULT_BACKGROUND_FADE_DURATION_MS = 300
03-16 13:50:50.480 D/LeakCanary: |   static sRotationWatcher = com.android.internal.policy.PhoneWindow$RotationWatcher@1958607000 (0x74bdf898)
03-16 13:50:50.480 D/LeakCanary: |   mActionMenuPresenterCallback = null
03-16 13:50:50.480 D/LeakCanary: |   mAllowEnterTransitionOverlap = java.lang.Boolean@1868501752 (0x6f5f12f8)
03-16 13:50:50.480 D/LeakCanary: |   mAllowReturnTransitionOverlap = java.lang.Boolean@1868501752 (0x6f5f12f8)
03-16 13:50:50.480 D/LeakCanary: |   mAlwaysReadCloseOnTouchAttr = false
03-16 13:50:50.480 D/LeakCanary: |   mAudioManager = null
03-16 13:50:50.480 D/LeakCanary: |   mBackgroundDrawable = null
03-16 13:50:50.480 D/LeakCanary: |   mBackgroundFadeDurationMillis = 300
03-16 13:50:50.480 D/LeakCanary: |   mBackgroundFallbackResource = 17170642
03-16 13:50:50.480 D/LeakCanary: |   mBackgroundResource = 2131689481
03-16 13:50:50.480 D/LeakCanary: |   mCircularProgressBar = null
03-16 13:50:50.480 D/LeakCanary: |   mClipToOutline = true
03-16 13:50:50.480 D/LeakCanary: |   mClosingActionMenu = false
03-16 13:50:50.480 D/LeakCanary: |   mContentParent = android.widget.FrameLayout@319540224 (0x130bcc00)
03-16 13:50:50.480 D/LeakCanary: |   mContentParentExplicitlySet = false
03-16 13:50:50.480 D/LeakCanary: |   mContentScene = null
03-16 13:50:50.480 D/LeakCanary: |   mContextMenu = null
03-16 13:50:50.480 D/LeakCanary: |   mContextMenuCallback = com.android.internal.policy.PhoneWindow$PhoneWindowMenuCallback@316881480 (0x12e33a48)
03-16 13:50:50.480 D/LeakCanary: |   mContextMenuHelper = null
03-16 13:50:50.480 D/LeakCanary: |   mDecor = com.android.internal.policy.DecorView@318679040 (0x12fea800)
03-16 13:50:50.480 D/LeakCanary: |   mDecorCaptionShade = 0
03-16 13:50:50.480 D/LeakCanary: |   mDecorContentParent = null
03-16 13:50:50.480 D/LeakCanary: |   mDrawables = null
03-16 13:50:50.480 D/LeakCanary: |   mElevation = 0.0
03-16 13:50:50.480 D/LeakCanary: |   mEnterTransition = android.transition.Fade@317158304 (0x12e773a0)
03-16 13:50:50.480 D/LeakCanary: |   mExitTransition = null
03-16 13:50:50.480 D/LeakCanary: |   mFixedHeightMajor = android.util.TypedValue@319912504 (0x13117a38)
03-16 13:50:50.480 D/LeakCanary: |   mFixedHeightMinor = android.util.TypedValue@319912544 (0x13117a60)
03-16 13:50:50.480 D/LeakCanary: |   mFixedWidthMajor = android.util.TypedValue@319912424 (0x131179e8)
03-16 13:50:50.480 D/LeakCanary: |   mFixedWidthMinor = android.util.TypedValue@319912464 (0x13117a10)
03-16 13:50:50.480 D/LeakCanary: |   mForceDecorInstall = false
03-16 13:50:50.480 D/LeakCanary: |   mForcedNavigationBarColor = false
03-16 13:50:50.480 D/LeakCanary: |   mForcedStatusBarColor = false
03-16 13:50:50.480 D/LeakCanary: |   mFrameResource = 0
03-16 13:50:50.480 D/LeakCanary: |   mHorizontalProgressBar = null
03-16 13:50:50.480 D/LeakCanary: |   mIconRes = 0
03-16 13:50:50.480 D/LeakCanary: |   mInvalidatePanelMenuFeatures = 0
03-16 13:50:50.480 D/LeakCanary: |   mInvalidatePanelMenuPosted = false
03-16 13:50:50.480 D/LeakCanary: |   mInvalidatePanelMenuRunnable = com.android.internal.policy.PhoneWindow$1@316801664 (0x12e20280)
03-16 13:50:50.480 D/LeakCanary: |   mIsFloating = false
03-16 13:50:50.480 D/LeakCanary: |   mIsStartingWindow = false
03-16 13:50:50.480 D/LeakCanary: |   mIsTranslucent = false
03-16 13:50:50.480 D/LeakCanary: |   mKeyguardManager = null
03-16 13:50:50.480 D/LeakCanary: |   mLayoutInflater = com.android.internal.policy.PhoneLayoutInflater@316124752 (0x12d7ae50)
03-16 13:50:50.480 D/LeakCanary: |   mLeftIconView = null
03-16 13:50:50.480 D/LeakCanary: |   mLoadElevation = true
03-16 13:50:50.480 D/LeakCanary: |   mLogoRes = 0
03-16 13:50:50.480 D/LeakCanary: |   mMediaController = null
03-16 13:50:50.480 D/LeakCanary: |   mMinWidthMajor = android.util.TypedValue@316330480 (0x12dad1f0)
03-16 13:50:50.480 D/LeakCanary: |   mMinWidthMinor = android.util.TypedValue@316330160 (0x12dad0b0)
03-16 13:50:50.480 D/LeakCanary: |   mNavigationBarColor = -16777216
03-16 13:50:50.480 D/LeakCanary: |   mNeedApplyTheme = false
03-16 13:50:50.480 D/LeakCanary: |   mPanelChordingKey = 0
03-16 13:50:50.480 D/LeakCanary: |   mPanelMenuPresenterCallback = null
03-16 13:50:50.480 D/LeakCanary: |   mPanels = null
03-16 13:50:50.480 D/LeakCanary: |   mPreparedPanel = null
03-16 13:50:50.480 D/LeakCanary: |   mReenterTransition = android.transition.TransitionSet@1958606848 (0x74bdf800)
03-16 13:50:50.480 D/LeakCanary: |   mResourcesSetFlags = 0
03-16 13:50:50.480 D/LeakCanary: |   mReturnTransition = android.transition.TransitionSet@1958606848 (0x74bdf800)
03-16 13:50:50.480 D/LeakCanary: |   mRightIconView = null
03-16 13:50:50.480 D/LeakCanary: |   mSharedElementEnterTransition = android.transition.TransitionSet@317374720 (0x12eac100)
03-16 13:50:50.480 D/LeakCanary: |   mSharedElementExitTransition = android.transition.TransitionSet@317375200 (0x12eac2e0)
03-16 13:50:50.480 D/LeakCanary: |   mSharedElementReenterTransition = android.transition.TransitionSet@1958606848 (0x74bdf800)
03-16 13:50:50.480 D/LeakCanary: |   mSharedElementReturnTransition = android.transition.TransitionSet@1958606848 (0x74bdf800)
03-16 13:50:50.480 D/LeakCanary: |   mSharedElementsUseOverlay = java.lang.Boolean@1868501752 (0x6f5f12f8)
03-16 13:50:50.480 D/LeakCanary: |   mStatusBarColor = -5987164
03-16 13:50:50.480 D/LeakCanary: |   mSupportsPictureInPicture = false
03-16 13:50:50.481 D/LeakCanary: |   mTakeInputQueueCallback = null
03-16 13:50:50.481 D/LeakCanary: |   mTakeSurfaceCallback = null
03-16 13:50:50.481 D/LeakCanary: |   mTextColor = -10921639
03-16 13:50:50.481 D/LeakCanary: |   mTheme = 2131361857
03-16 13:50:50.481 D/LeakCanary: |   mThemeResId = 0
03-16 13:50:50.481 D/LeakCanary: |   mTitle = null
03-16 13:50:50.481 D/LeakCanary: |   mTitleColor = -10921639
03-16 13:50:50.481 D/LeakCanary: |   mTitleView = null
03-16 13:50:50.481 D/LeakCanary: |   mTransitionManager = android.transition.TransitionManager@316803936 (0x12e20b60)
03-16 13:50:50.481 D/LeakCanary: |   mUiOptions = 0
03-16 13:50:50.481 D/LeakCanary: |   mUseDecorContext = true
03-16 13:50:50.481 D/LeakCanary: |   mVolumeControlStreamType = -2147483648
03-16 13:50:50.481 D/LeakCanary: |   mActiveChild = null
03-16 13:50:50.481 D/LeakCanary: |   mAppName = java.lang.String@316926416 (0x12e3e9d0)
03-16 13:50:50.481 D/LeakCanary: |   mAppToken = android.os.BinderProxy@315162784 (0x12c900a0)
03-16 13:50:50.481 D/LeakCanary: |   mCallback = android.support.v7.app.AppCompatDelegateImplN$AppCompatWindowCallbackN@315653312 (0x12d07cc0)
03-16 13:50:50.481 D/LeakCanary: |   mCloseOnTouchOutside = false
03-16 13:50:50.481 D/LeakCanary: |   mContainer = null
03-16 13:50:50.481 D/LeakCanary: |   mContext = im.example.app.ui.activities.MainActivity@315248128 (0x12ca4e00)
03-16 13:50:50.481 D/LeakCanary: |   mDefaultWindowFormat = -1
03-16 13:50:50.481 D/LeakCanary: |   mDestroyed = true
03-16 13:50:50.481 D/LeakCanary: |   mFeatures = 8259
03-16 13:50:50.481 D/LeakCanary: |   mForcedWindowFlags = -2139029248
03-16 13:50:50.481 D/LeakCanary: |   mHardwareAccelerated = true
03-16 13:50:50.481 D/LeakCanary: |   mHasChildren = false
03-16 13:50:50.481 D/LeakCanary: |   mHasSoftInputMode = false
03-16 13:50:50.481 D/LeakCanary: |   mHaveDimAmount = false
03-16 13:50:50.481 D/LeakCanary: |   mHaveWindowFormat = false
03-16 13:50:50.481 D/LeakCanary: |   mIsActive = false
03-16 13:50:50.481 D/LeakCanary: |   mLocalFeatures = 8259
03-16 13:50:50.481 D/LeakCanary: |   mOnRestrictedCaptionAreaChangedListener = null
03-16 13:50:50.481 D/LeakCanary: |   mOnWindowDismissedCallback = im.example.app.ui.activities.MainActivity@315248128 (0x12ca4e00)
03-16 13:50:50.481 D/LeakCanary: |   mOverlayWithDecorCaptionEnabled = false
03-16 13:50:50.481 D/LeakCanary: |   mRestrictedCaptionAreaRect = null
03-16 13:50:50.481 D/LeakCanary: |   mSetCloseOnTouchOutside = false
03-16 13:50:50.481 D/LeakCanary: |   mWindowAttributes = android.view.WindowManager$LayoutParams@316627056 (0x12df5870)
03-16 13:50:50.481 D/LeakCanary: |   mWindowControllerCallback = im.example.app.ui.activities.MainActivity@315248128 (0x12ca4e00)
03-16 13:50:50.481 D/LeakCanary: |   mWindowManager = android.view.WindowManagerImpl@316881744 (0x12e33b50)
03-16 13:50:50.481 D/LeakCanary: |   mWindowStyle = android.content.res.TypedArray@316124416 (0x12d7ad00)
03-16 13:50:50.481 D/LeakCanary: |   shadow$_klass_ = com.android.internal.policy.PhoneWindow
03-16 13:50:50.481 D/LeakCanary: |   shadow$_monitor_ = 0
03-16 13:50:50.481 D/LeakCanary: * Instance of im.example.app.ui.activities.MainActivity
03-16 13:50:50.481 D/LeakCanary: |   static serialVersionUID = 1592163535383681309
03-16 13:50:50.481 D/LeakCanary: |   static $change = null
03-16 13:50:50.481 D/LeakCanary: |   static $classOverhead = byte[4488]@317804545 (0x12f15001)
03-16 13:50:50.481 D/LeakCanary: |   mDelegate = android.support.v7.app.AppCompatDelegateImplN@316955232 (0x12e45a60)
03-16 13:50:50.481 D/LeakCanary: |   mEatKeyUpEvent = false
03-16 13:50:50.481 D/LeakCanary: |   mResources = null
03-16 13:50:50.481 D/LeakCanary: |   mThemeId = 2131361857
03-16 13:50:50.481 D/LeakCanary: |   mCreated = false
03-16 13:50:50.481 D/LeakCanary: |   mFragments = android.support.v4.app.FragmentController@316801872 (0x12e20350)
03-16 13:50:50.481 D/LeakCanary: |   mHandler = android.support.v4.app.FragmentActivity$1@315652032 (0x12d077c0)
03-16 13:50:50.481 D/LeakCanary: |   mNextCandidateRequestIndex = 0
03-16 13:50:50.481 D/LeakCanary: |   mOptionsMenuInvalidated = false
03-16 13:50:50.481 D/LeakCanary: |   mPendingFragmentActivityResults = android.support.v4.util.SparseArrayCompat@318133056 (0x12f65340)
03-16 13:50:50.481 D/LeakCanary: |   mReallyStopped = true
03-16 13:50:50.481 D/LeakCanary: |   mRequestedPermissionsFromFragment = false
03-16 13:50:50.481 D/LeakCanary: |   mResumed = false
03-16 13:50:50.481 D/LeakCanary: |   mRetaining = false
03-16 13:50:50.481 D/LeakCanary: |   mStopped = false
03-16 13:50:50.481 D/LeakCanary: |   mStartedActivityFromFragment = false
03-16 13:50:50.481 D/LeakCanary: |   mStartedIntentSenderFromFragment = false
03-16 13:50:50.481 D/LeakCanary: |   mExtraDataMap = android.support.v4.util.SimpleArrayMap@316880688 (0x12e33730)
03-16 13:50:50.481 D/LeakCanary: |   mActionBar = null
03-16 13:50:50.481 D/LeakCanary: |   mActionModeTypeStarting = 0
03-16 13:50:50.481 D/LeakCanary: |   mActivityInfo = android.content.pm.ActivityInfo@315129136 (0x12c87d30)
03-16 13:50:50.481 D/LeakCanary: |   mActivityTransitionState = android.app.ActivityTransitionState@315096024 (0x12c7fbd8)
03-16 13:50:50.481 D/LeakCanary: |   mApplication = im.example.app.App@315308544 (0x12cb3a00)
03-16 13:50:50.481 D/LeakCanary: |   mCalled = true
03-16 13:50:50.481 D/LeakCanary: |   mChangeCanvasToTranslucent = false
03-16 13:50:50.481 D/LeakCanary: |   mChangingConfigurations = false
03-16 13:50:50.481 D/LeakCanary: |   mComponent = android.content.ComponentName@315150416 (0x12c8d050)
03-16 13:50:50.481 D/LeakCanary: |   mConfigChangeFlags = 0
03-16 13:50:50.481 D/LeakCanary: |   mCurrentConfig = android.content.res.Configuration@315182584 (0x12c94df8)
03-16 13:50:50.481 D/LeakCanary: |   mDecor = null
03-16 13:50:50.481 D/LeakCanary: |   mDefaultKeyMode = 0
03-16 13:50:50.481 D/LeakCanary: |   mDefaultKeySsb = null
03-16 13:50:50.481 D/LeakCanary: |   mDestroyed = true
03-16 13:50:50.481 D/LeakCanary: |   mDoReportFullyDrawn = true
03-16 13:50:50.481 D/LeakCanary: |   mEatKeyUpEvent = false
03-16 13:50:50.481 D/LeakCanary: |   mEmbeddedID = null
03-16 13:50:50.481 D/LeakCanary: |   mEnableDefaultActionBarUp = false
03-16 13:50:50.481 D/LeakCanary: |   mEnterTransitionListener = android.app.SharedElementCallback$1@1876896536 (0x6fdf2b18)
03-16 13:50:50.481 D/LeakCanary: |   mExitTransitionListener = android.app.SharedElementCallback$1@1876896536 (0x6fdf2b18)
03-16 13:50:50.481 D/LeakCanary: |   mFinished = true
03-16 13:50:50.481 D/LeakCanary: |   mFragments = android.app.FragmentController@316801952 (0x12e203a0)
03-16 13:50:50.481 D/LeakCanary: |   mHandler = android.os.Handler@315651936 (0x12d07760)
03-16 13:50:50.481 D/LeakCanary: |   mHasCurrentPermissionsRequest = false
03-16 13:50:50.481 D/LeakCanary: |   mIdent = 215673234
03-16 13:50:50.481 D/LeakCanary: |   mInstanceTracker = android.os.StrictMode$InstanceTracker@316801936 (0x12e20390)
03-16 13:50:50.481 D/LeakCanary: |   mInstrumentation = android.app.Instrumentation@315334936 (0x12cba118)
03-16 13:50:50.481 D/LeakCanary: |   mIntent = android.content.Intent@315142264 (0x12c8b078)
03-16 13:50:50.481 D/LeakCanary: |   mLastNonConfigurationInstances = null
03-16 13:50:50.481 D/LeakCanary: |   mMainThread = android.app.ActivityThread@316091792 (0x12d72d90)
03-16 13:50:50.481 D/LeakCanary: |   mManagedCursors = java.util.ArrayList@316880640 (0x12e33700)
03-16 13:50:50.481 D/LeakCanary: |   mManagedDialogs = null
03-16 13:50:50.481 D/LeakCanary: |   mMenuInflater = null
03-16 13:50:50.481 D/LeakCanary: |   mParent = null
03-16 13:50:50.481 D/LeakCanary: |   mReferrer = java.lang.String@315142880 (0x12c8b2e0)
03-16 13:50:50.481 D/LeakCanary: |   mResultCode = 0
03-16 13:50:50.481 D/LeakCanary: |   mResultData = null
03-16 13:50:50.481 D/LeakCanary: |   mResumed = false
03-16 13:50:50.481 D/LeakCanary: |   mSearchEvent = null
03-16 13:50:50.481 D/LeakCanary: |   mSearchManager = null
03-16 13:50:50.481 D/LeakCanary: |   mStartedActivity = false
03-16 13:50:50.481 D/LeakCanary: |   mStopped = false
03-16 13:50:50.481 D/LeakCanary: |   mTaskDescription = android.app.ActivityManager$TaskDescription@315651968 (0x12d07780)
03-16 13:50:50.481 D/LeakCanary: |   mTemporaryPause = false
03-16 13:50:50.481 D/LeakCanary: |   mTitle = java.lang.String@316124656 (0x12d7adf0)
03-16 13:50:50.481 D/LeakCanary: |   mTitleColor = 0
03-16 13:50:50.481 D/LeakCanary: |   mTitleReady = false
03-16 13:50:50.481 D/LeakCanary: |   mToken = android.os.BinderProxy@315162784 (0x12c900a0)
03-16 13:50:50.481 D/LeakCanary: |   mTranslucentCallback = null
03-16 13:50:50.481 D/LeakCanary: |   mUiThread = java.lang.Thread@1958340848 (0x74b9e8f0)
03-16 13:50:50.482 D/LeakCanary: |   mVisibleBehind = false
03-16 13:50:50.482 D/LeakCanary: |   mVisibleFromClient = true
03-16 13:50:50.482 D/LeakCanary: |   mVisibleFromServer = false
03-16 13:50:50.482 D/LeakCanary: |   mVoiceInteractor = null
03-16 13:50:50.482 D/LeakCanary: |   mWindow = com.android.internal.policy.PhoneWindow@315381600 (0x12cc5760)
03-16 13:50:50.482 D/LeakCanary: |   mWindowAdded = false
03-16 13:50:50.482 D/LeakCanary: |   mWindowManager = android.view.WindowManagerImpl@316881744 (0x12e33b50)
03-16 13:50:50.482 D/LeakCanary: |   mInflater = com.android.internal.policy.PhoneLayoutInflater@316124752 (0x12d7ae50)
03-16 13:50:50.482 D/LeakCanary: |   mOverrideConfiguration = null
03-16 13:50:50.482 D/LeakCanary: |   mResources = android.content.res.Resources@316330560 (0x12dad240)
03-16 13:50:50.482 D/LeakCanary: |   mTheme = android.content.res.Resources$Theme@316801488 (0x12e201d0)
03-16 13:50:50.482 D/LeakCanary: |   mThemeResource = 2131361857
03-16 13:50:50.482 D/LeakCanary: |   mBase = android.app.ContextImpl@318308736 (0x12f90180)
03-16 13:50:50.482 D/LeakCanary: |   shadow$_klass_ = im.example.app.ui.activities.MainActivity
03-16 13:50:50.482 D/LeakCanary: |   shadow$_monitor_ = 1073742920
03-16 13:50:50.482 D/LeakCanary: * Excluded Refs:
03-16 13:50:50.482 D/LeakCanary: | Field: android.view.Choreographer$FrameDisplayEventReceiver.mMessageQueue (always)
03-16 13:50:50.482 D/LeakCanary: | Thread:FinalizerWatchdogDaemon (always)
03-16 13:50:50.482 D/LeakCanary: | Thread:main (always)
03-16 13:50:50.482 D/LeakCanary: | Thread:LeakCanary-Heap-Dump (always)
03-16 13:50:50.482 D/LeakCanary: | Class:java.lang.ref.WeakReference (always)
03-16 13:50:50.482 D/LeakCanary: | Class:java.lang.ref.SoftReference (always)
03-16 13:50:50.482 D/LeakCanary: | Class:java.lang.ref.PhantomReference (always)
03-16 13:50:50.482 D/LeakCanary: | Class:java.lang.ref.Finalizer (always)
03-16 13:50:50.482 D/LeakCanary: | Class:java.lang.ref.FinalizerReference (always)

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Reactions:3
  • Comments:11 (1 by maintainers)

github_iconTop GitHub Comments

11reactions
alexhecommented, Jun 14, 2017

We already investigated this, and fixed internally(It was caused by Context leak), OnePlus 3/3T will get fixed in next OTA Update.

6reactions
cpeppascommented, Apr 7, 2017

confirming the above on a Oneplus 3T running OxygenOS 4.1.0 Android 7.1.1

Read more comments on GitHub >

github_iconTop Results From Across the Web

Everything you need to know about Memory Leaks in Android.
A memory leak can easily occur in Android when AsyncTasks, Handlers, Singletons, Threads, and other components are used incorrectly. I'll use threads, ...
Read more >
Preventing and detecting memory leaks in Android apps
Memory leaks can cause your Android app to crash, causing frustration and lower usage. Learn how to fix them in this guide.
Read more >
FragmentStatePagerAdapter memory leak in Android < 7.0
We're trying to make an app where we can swipe between pdf of 1 page. There is a lot of pdf, that's why...
Read more >
Find and Fix MEMORY LEAKS with Leak Canary in Android
A memory leak happens when the garbage collector does not free up an object in your app that can't be used anymore.
Read more >
Manage your app's memory - Android Developers
public · void · () · { · // Before doing something that requires a lot of memory, · // check to see...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found