[英]Android, something won't work in onCreate(), but it will in onResume()
我有一个Android应用程序,可将铃声音量更改为最大,并在退出或按下主屏幕按钮时恢复铃声音量。 这是代码片段。
int ringMode;
int ringVolume;
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
changeRingtone();
}
@Override
protected void onResume() {
changeRingtone();
}
private void changeRingtone() {
ringVolume = audioManager.getStreamVolume(audioManager.STREAM_RING);
ringMode = audioManager.getRingerMode();
audioManager.setStreamVolume(audioManager.STREAM_RING,
audioManager.getStreamMaxVolume(audioManager.STREAM_RING),
AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
}
@Override
protected void onPause() {
audioManager.setStreamVolume(audioManager.STREAM_RING, ringVolume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
audioManager.setRingerMode(ringMode);
super.onPause();
}
现在的问题是,当应用程序首次启动(调用onCreate()
)时,它会将卷更改为max,但没有将其还原到onPause()
先前卷。 但是,如果应用程序由onResume()
启动(意味着该应用程序处于后台),它将把音量更改为max,并确实将其还原到onPause()
先前音量。
该代码似乎很好,但几天来我一直没有弄清楚问题出在哪里,请帮忙,谢谢!
在您的活动启动之后以及打入电话之间会在暂停时呼叫on。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.