Android - 后退按钮不调用 onResume()
Android - Back button doesn't call onResume()
我是这方面的初学者,请多多包涵。
在我的应用中,我希望应用的主题根据用户偏好进行更新。我有一个带有主题部分的首选项页面,这是我的 MainActivity 的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String userTheme = preferences.getString("theme_setting", "Blue");
if (userTheme.equals("Blue"))
setTheme(R.style.BlueTheme);
else if (userTheme.equals("Red"))
setTheme(R.style.RedTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
//Initiate buttons
quadButton = (Button) findViewById(R.id.quadButton);
sssButton = (Button) findViewById(R.id.sssButton);
ssaButton = (Button) findViewById(R.id.ssaButton);
areaButton = (Button) findViewById(R.id.areaButton);
volumeButton = (Button) findViewById(R.id.volumeButton);
conversionButton = (Button) findViewById(R.id.conversionButton);
buttonListeners();
}
@Override
protected void onResume() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String userTheme = preferences.getString("theme_setting", "Blue");
if (userTheme.equals("Blue"))
setTheme(R.style.BlueTheme);
else if (userTheme.equals("Red"))
setTheme(R.style.RedTheme);
super.onResume();
setContentView(R.layout.activity_main);
//Initiate buttons
quadButton = (Button) findViewById(R.id.quadButton);
sssButton = (Button) findViewById(R.id.sssButton);
ssaButton = (Button) findViewById(R.id.ssaButton);
areaButton = (Button) findViewById(R.id.areaButton);
volumeButton = (Button) findViewById(R.id.volumeButton);
conversionButton = (Button) findViewById(R.id.conversionButton);
buttonListeners();
}
这在按下向上按钮以从设置屏幕 return 进入 MainActivity 时起作用,但在按下系统后退按钮时不起作用。我试图用 onResume() 方法解决这个问题,但它似乎从未在运行时实际调用 onResume。此外,在 Android Studio 中,它显示 "Method onResume() is never used"
这里出了什么问题?任何帮助将不胜感激,谢谢!
onResume()
不带参数。您还应该使用 @Override
进行注释以防止此类错误。
基本上您已经创建了一个新方法 onResume()
,它不会作为 Activity
生命周期的一部分被调用。
我是这方面的初学者,请多多包涵。
在我的应用中,我希望应用的主题根据用户偏好进行更新。我有一个带有主题部分的首选项页面,这是我的 MainActivity 的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String userTheme = preferences.getString("theme_setting", "Blue");
if (userTheme.equals("Blue"))
setTheme(R.style.BlueTheme);
else if (userTheme.equals("Red"))
setTheme(R.style.RedTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
//Initiate buttons
quadButton = (Button) findViewById(R.id.quadButton);
sssButton = (Button) findViewById(R.id.sssButton);
ssaButton = (Button) findViewById(R.id.ssaButton);
areaButton = (Button) findViewById(R.id.areaButton);
volumeButton = (Button) findViewById(R.id.volumeButton);
conversionButton = (Button) findViewById(R.id.conversionButton);
buttonListeners();
}
@Override
protected void onResume() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String userTheme = preferences.getString("theme_setting", "Blue");
if (userTheme.equals("Blue"))
setTheme(R.style.BlueTheme);
else if (userTheme.equals("Red"))
setTheme(R.style.RedTheme);
super.onResume();
setContentView(R.layout.activity_main);
//Initiate buttons
quadButton = (Button) findViewById(R.id.quadButton);
sssButton = (Button) findViewById(R.id.sssButton);
ssaButton = (Button) findViewById(R.id.ssaButton);
areaButton = (Button) findViewById(R.id.areaButton);
volumeButton = (Button) findViewById(R.id.volumeButton);
conversionButton = (Button) findViewById(R.id.conversionButton);
buttonListeners();
}
这在按下向上按钮以从设置屏幕 return 进入 MainActivity 时起作用,但在按下系统后退按钮时不起作用。我试图用 onResume() 方法解决这个问题,但它似乎从未在运行时实际调用 onResume。此外,在 Android Studio 中,它显示 "Method onResume() is never used"
这里出了什么问题?任何帮助将不胜感激,谢谢!
onResume()
不带参数。您还应该使用 @Override
进行注释以防止此类错误。
基本上您已经创建了一个新方法 onResume()
,它不会作为 Activity
生命周期的一部分被调用。