【问题标题】:Android - MediaController leaking on activityAndroid - MediaController 在活动中泄漏
【发布时间】:2014-02-15 02:25:13
【问题描述】:

我正在使用 MediaPlayer 和 MediaController 对象来传输音频。关闭活动时,我得到一个窗口泄漏异常。

我的活动中有以下内容,但完全没有帮助。

@Override
protected void onStop() {
    super.onStop();
    mediaController.hide();

}

我得到以下堆栈跟踪:

01-24 20:11:18.317: E/WindowManager(26286): 活动 co.uk.ing_simmons.aberdeensoundsites.RecordingDetails 已泄露 窗口 com.android.internal.policy.impl.PhoneWindow$DecorView@4182d590 最初添加在这里 01-24 20:11:18.317: E/WindowManager(26286): android.view.WindowLeaked: 活动 co.uk.ing_simmons.aberdeensoundsites.RecordingDetails 已泄露 窗口 com.android.internal.policy.impl.PhoneWindow$DecorView@4182d590 最初添加在这里 01-24 20:11:18.317: E/WindowManager(26286):在 android.view.ViewRootImpl.(ViewRootImpl.java:418) 01-24 20:11:18.317:E/WindowManager(26286):在 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:294) 01-24 20:11:18.317:E/WindowManager(26286):在 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:226) 01-24 20:11:18.317:E/WindowManager(26286):在 android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:151) 01-24 20:11:18.317:E/WindowManager(26286):在 android.view.Window$LocalWindowManager.addView(Window.java:547) 01-24 20:11:18.317:E/WindowManager(26286):在 android.widget.MediaController.show(MediaController.java:470) 01-24 20:11:18.317:E/WindowManager(26286):在 android.widget.MediaController.show(MediaController.java:429) 01-24 20:11:18.317:E/WindowManager(26286):在 co.uk.ing_simmons.aberdeensoundsites.RecordingDetails$2.run(RecordingDetails.java:202) 01-24 20:11:18.317:E/WindowManager(26286):在 android.os.Handler.handleCallback(Handler.java:615) 01-24 20:11:18.317:E/WindowManager(26286):在 android.os.Handler.dispatchMessage(Handler.java:92) 01-24 20:11:18.317:E/WindowManager(26286):在 android.os.Looper.loop(Looper.java:153) 01-24 20:11:18.317: E/WindowManager(26286):在 android.app.ActivityThread.main(ActivityThread.java:5006) 01-24 20:11:18.317:E/WindowManager(26286):在 java.lang.reflect.Method.invokeNative(Native Method) 01-24 20:11:18.317:E/WindowManager(26286):在 java.lang.reflect.Method.invoke(Method.java:511) 01-24 20:11:18.317: E/WindowManager(26286):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821) 01-24 20:11:18.317:E/WindowManager(26286):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584) 01-24 20:11:18.317:E/WindowManager(26286):在 dalvik.system.NativeStart.main(本机方法)01-24 20:11:18.325: E/InputEventReceiver(26286): 通道 '41c81858 小组:co.uk.ing_simmons.aberdeensoundsites/co.uk.ing_simmons.aberdeensoundsites.RecordingDetails (client)' ~ Publisher 关闭输入通道或发生错误。 事件=0x9

这似乎指向第 202 行,也就是这一行:

mediaController.show();

我已经在谷歌上搜索了几个小时,实际上所有内容都说将“mediaController.hide()”放在 onStop 方法中以防止泄漏。这显然不起作用,因此我们将不胜感激任何帮助或指导。

谢谢

【问题讨论】:

    标签: android memory-leaks android-mediaplayer mediacontroller


    【解决方案1】:

    你可能想要反转线条

    super.onStop();
    mediaController.hide();
    

    mediaController.hide();
    super.onStop();
    

    【讨论】:

    • 不起作用。我仍然收到“已泄漏窗口”错误。
    猜你喜欢
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多