我正在尝试Android Application Development for Dummies的一个示例,这是一个简单的应用程序,可以切换手机的响铃模式。代码如下。
public class SilentModeToggleActivity extends Activity {
private AudioManager mAudioManager;
private boolean mPhoneIsSilent;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
checkIfPhoneIsSilent();
setButtonClickListener();
}
@Override public void onResume() {
super.onResume();
checkIfPhoneIsSilent();
toggleUi();
}
private void checkIfPhoneIsSilent() {
int ringerMode = mAudioManager.getRingerMode();
if (ringerMode == AudioManager.RINGER_MODE_SILENT) {
mPhoneIsSilent = true;
} else {
mPhoneIsSilent = false;
}
}
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 toggleUi() {
ImageView imageView = (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);
}
imageView.setImageDrawable(newPhoneImage);
}
}
我的问题是因为我只覆盖onCreate()
(默认显示“正常”模式图像)并且,如果我在应用程序外部将手机模式更改为静音(在我检查当前状态并更新) onResume()
,预计图像会变为“静音” onResume()
UI),但为什么即使我杀死进程然后将手机模式更改为静音,它仍然显示正确的图像?
我希望应用程序重新加载并显示默认图像,这是正常的。不是正确但令人困惑的无声图像。