[英]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.