0

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

即使我退出并重新启动应用程序,音量仍被锁定为静音。恢复音量的唯一方法是重启手机。请帮忙!该应用程序是 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();

}
**
4

2 回答 2

0

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

protected void onDestroy(){
      super.onDestroy();
       am = (AudioManager) getSystemService(AUDIO_SERVICE);
       am.setStreamMute(AudioManager.STREAM_MUSIC, true);
}
于 2013-02-12T16:47:13.000 回答
0

事实证明,某些事情导致任务没有被杀死。它正在窃听手机音量,并且应用程序在后台运行并消耗 RAM 和电池。我通过自己杀死所有任务来解决它。

将 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");

}
于 2013-02-20T00:14:02.537 回答