我有一个活动A,它有一个打开B的按钮,它插入一条记录。然后,A可以刷新onActivityResult中的视图。这是正常的流程。
但是,B也可以接受分享意图来插入记录。如何知道何时从B完成此操作以刷新视图就像正常流程一样? (当然,我假设行为A已经在后台任务上运行)
当然,我可以使用A中的onResume检测更改,但我想知道它是否是正确的方法。 谢谢
答案 0 :(得分:0)
您可以使用onResume刷新活动A的视图。因为其他方法将使用broadcastReceiver和broadcastIntent,这会产生不必要的负载。
如果活动B中的数据已更改,则可以使用sharedPreference存储,然后在活动A的onResume中使用共享优先级并刷新视图
@Override
protected void onResume() {
super.onResume();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean isChanged = sharedPreferences.getBoolean("isChanged",false);
if(isChanged){
//refresh your views
//clear the shared prefernce
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit();
editor.putBoolean("isChanged",false);
editor.apply();
}
}
请记住,您在加载数据时已在ActivityB中设置了该共享首选项
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit();
editor.putBoolean("isChanged",true);
editor.apply();