我有一项主要活动和一项偏好活动。在我的第一个活动中,我调用菜单并通过调用startActivityForResult继续preferenceActivity。
case R.id.settings:
startActivityForResult(new Intent(this, SettingsActivity.class), LAUNCH_SETTINGS);
return true;
然后我更改设置并希望返回主要活动并查看应用了新设置的主要活动。在 onPause() 方法中执行以下操作(据我所知,当我按后退按钮时将调用此方法,对吧?)
@Override
protected void onPause() {
super.onPause();
setResult(RESULT_OK, new Intent(this, MainActivity.class));
finish();
}
关于主要活动
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == LAUNCH_SETTINGS) {
if (resultCode == RESULT_OK) {
new RefreshList().execute(ACTION_SELECT);
Log.d(TAG, "On activity result");
}
}
}
但我的 asyncTask 没有调用并且日志没有打印。我能正确地做到这一点吗?
谢谢!
在我的第一个活动中,我调用菜单并通过调用startActivityForResult继续preferenceActivity。
Using startActivityForResult()
with a PreferenceActivity
是相当不寻常的。PreferenceActivity
设计用于与startActivity()
。如果从一开始PreferenceActivity
关心偏好变化,它应该注册一个偏好变化监听器SharedPreferences
object.
然后我更改设置并希望返回主要活动并查看应用了新设置的主要活动。
我建议您使用SharedPreferences.OnSharedPreferenceChangeListener
反而。或者,只需重新阅读原始活动中您关心的偏好即可onStart()
or onResume()
method.
在 onPause() 方法中执行以下操作(据我所知,当我按后退按钮时将调用此方法,对吧?)
不,那是行不通的。onPause()
打电话已经太晚了setResult()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)