我的活动有onReceive
(电池广播)和服务,可以将数据插入共享偏好设置。然后从活动我得到那些数据。我的问题是,当我改变手机的方向时,数据才会刷新。如果我不这样做,Activity会显示旧的共享首选项数据。任何帮助将不胜感激。
我想知道的是:
onReceive
方法更新我的活动。答案 0 :(得分:1)
两个想法:
1)当您在服务中修改共享偏好设置时,请务必致电apply()
或commit()
以实际更新您的共享偏好设置。
2)在您的活动中,请确保通过registerSharedPreferenceListener注册共享偏好设备侦听器,以便了解您的活动中的偏好设置何时更新。
答案 1 :(得分:1)
旋转手机时,会重新创建活动。您可以通过以下方式再次完成并开始您的活动:
finish();
startActivity(getIntent());
我不知道这是否是您案例的最佳选择,但我使用此功能使用webservices刷新我的活动并且它正常运行!
答案 2 :(得分:1)
要做到这一点,我只需手动重启活动......这是我使用过的方法
public void reload() {
Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);
}
使用此方法,由于转换,将不会有动画。