首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pop-up的活动生命周期

Pop-up的活动生命周期
EN

Stack Overflow用户
提问于 2014-07-29 17:13:03
回答 1查看 274关注 0票数 1

我正在尝试创建一个应用程序来切换铃声音量。但是,当我使用音量按钮更改铃声卷时,我的活动不会被中断,因此它不会识别更改。是否有任何方法可以促进这一点。public void onWindowFocusChanged(boolean)方法不将弹出视为焦点更改,任何常规的活动OnResume()等方法也不起作用。

代码:

代码语言:javascript
复制
public class MainActivity extends ActionBarActivity {
private AudioManager mAudioManager;
private boolean mPhoneIsSilent;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
    CheckIfPhoneIsSilent();
    setButtonClickListener();
    toggleUi();

}


public void onWindowFocusChanged(boolean tryi)
{

    CheckIfPhoneIsSilent();
    toggleUi();
}
    private void setButtonClickListener(){
        Button toggleButton = (Button)findViewById(R.id.toggleButton);
            toggleButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            if (mPhoneIsSilent){
            mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            mPhoneIsSilent=false;
            }
            else{
                mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
                mPhoneIsSilent=true;
            }
            toggleUi();
        }

    });
    }

    private void CheckIfPhoneIsSilent() {
        int ringerMode = mAudioManager.getRingerMode();
        if(ringerMode == AudioManager.RINGER_MODE_SILENT){
            mPhoneIsSilent= true;
        }
        else {
            mPhoneIsSilent = false;
        }
    }

    private void toggleUi()
    {
        ImageView pic = (ImageView)findViewById(R.id.phone_icon);
        Drawable newPhoneImage;
        if (mPhoneIsSilent){
            newPhoneImage = getResources().getDrawable(R.drawable.phone_silent);
        }
        else {
            newPhoneImage = getResources().getDrawable(R.drawable.phone_on);

        }
        pic.setImageDrawable(newPhoneImage);

    }


    protected void OnResume() {
        super.onResume();
        CheckIfPhoneIsSilent();
        toggleUi();
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-29 20:49:57

也许你可以在你的活动中听音量键按下?而不是试图预测是否会出现卷的弹出。您可以通过在您的活动中重写onKeyDown方法来做到这一点。然后,您可以侦听音量上升或下降的键代码。

代码语言:javascript
复制
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    boolean result = true;

    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        // Handle Volume Down
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
        // Handle Volume Up
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_MUTE) {
        // Handle Volume Mute
    } else {
        // Perform default behavior
        result = super.onKeyDown(keyCode, event);
    }

    // True means you handled it and it no longer needs to be bubbled up
    return result;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25021186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档