Geo*_*zov 5 settings android preferences android-preferences android-activity
我有一个主要活动和一个preferenceActivity.在我的第一个活动中,我调用menu并通过调用startActivityForResult继续使用preferenceActivity.
case R.id.settings:
startActivityForResult(new Intent(this, SettingsActivity.class), LAUNCH_SETTINGS);
return true;
Run Code Online (Sandbox Code Playgroud)
然后我更改我的设置并希望返回主要活动,并查看应用了新设置的主要活动.在onPause()方法中执行以下操作(因为我正确理解当按下后退按钮时会调用此方法,对吧?)
@Override
protected void onPause() {
super.onPause();
setResult(RESULT_OK, new Intent(this, MainActivity.class));
finish();
}
Run Code Online (Sandbox Code Playgroud)
关于主要活动
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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是我的acyncTask没有调用并且没有打印日志.我怎么能正确地做到这一点?谢谢!
Com*_*are 12
在我的第一个活动中,我调用menu并通过调用startActivityForResult继续使用preferenceActivity.
使用startActivityForResult()a PreferenceActivity是相当不寻常的.PreferenceActivity旨在与startActivity().一起使用.如果开始PreferenceActivity关心偏好的人改变,则应该向SharedPreferences对象注册偏好改变监听器.
然后我更改我的设置并希望返回主要活动,并查看应用了新设置的主要活动.
我建议你SharedPreferences.OnSharedPreferenceChangeListener改用.或者,只需重新阅读您在原始活动onStart()或onResume()方法中关注的首选项.
在onPause()方法中执行以下操作(因为我正确理解当按下后退按钮时会调用此方法,对吧?)
不,那不行.onPause()来电太晚了setResult().
| 归档时间: |
|
| 查看次数: |
8684 次 |
| 最近记录: |