杀死后,Android Media Volume已锁定

时间:2013-02-12 16:44:02

标签: android volume android-audiomanager locked

我的应用中存在一个巨大的错误。完成应用程序后,音量被静音并锁定。

即使我退出并重新启动应用程序,音量仍然会锁定为静音。恢复音量的唯一方法是重启手机。请帮忙!该应用为2 webviews,其中一个webviewsvideo stream

每次按下音量按钮时,日志都会显示:

02-12 11:45:12.939: V/AudioHardwareMSM76XXA(115): AudioHardware::getParameters()
Fm-radio=

02-12 11:37:29.639: D/LKW(198): mShowing= false mNeedToReshowWhenReenabled= false
mUpdateMonitor.isDeviceProvisioned()= true

我的音频管理器方法:

@Override
protected void onPause() {
    super.onPause();
    am = (AudioManager) getSystemService(AUDIO_SERVICE);
    am.setStreamMute(AudioManager.STREAM_MUSIC, true);
    lock.release();
}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    am = (AudioManager) getSystemService(AUDIO_SERVICE);
    am.setStreamMute(AudioManager.STREAM_MUSIC, false);
    lock.acquire();

}
**

2 个答案:

答案 0 :(得分:0)

尝试将onPause上使用的相同代码添加到onDestroy方法中,即使应用程序崩溃,它也会有所帮助: 请注意,调用它并不适合,但在大多数情况下它会被

protected void onDestroy(){
      super.onDestroy();
       am = (AudioManager) getSystemService(AUDIO_SERVICE);
       am.setStreamMute(AudioManager.STREAM_MUSIC, true);
}

答案 1 :(得分:0)

事实证明,有些事情导致任务无法被杀死。这是在窃听手机音量,应用程序在后台运行,消耗内存和电池。我通过自己杀死所有任务来解决它。

将KILL_BACKGROUND_PROCESSES添加到清单中。 然后杀死任务。

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    final ActivityManager amm = (ActivityManager)Class.this.getSystemService(Activity.ACTIVITY_SERVICE);
    amm.restartPackage("com.liyicky.dbzhd");
    amm.killBackgroundProcesses("com.liyicky.dbzhd");

}