如果我调用了当前活动的结束,则调用前一个活动的哪种方法

时间:2019-03-09 05:01:09

标签: android android-recyclerview

在我的应用程序中,我有两个活动,在第一个活动中,我具有Recycleview,在第二个活动中,我正在更新数据库,然后调用finish返回到我的列表视图,所以我的问题是我应该在哪种方法中放入Adapter.notifyDataSetChanged ()获取更新的Recycleview。

一些重要代码:

在第二个活动中调用Finish():

工具栏事件句柄的导航图标下面的代码:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // handle arrow click here
        if (item.getItemId() == android.R.id.home) {

            finish(); // close this activity and return to preview activity (if there is any)
        }

        return super.onOptionsItemSelected(item);
    }

3 个答案:

答案 0 :(得分:1)

@Override
public void onRestart(){
adapter.notifyDataSetChanged();
super.onRestart();
}

编辑:

在您的第二个活动中,如果数据库已更新,则向如下所示的sharedpreference添加一个标记

@Override
public void onDestroy(){
sharedpreference.edit().putBoolean("isModified",true).apply();
//Or flase if not modified
 super.onDestroy();
}

首次活动

@Override
    public void onRestart(){
    super.onRestart();
if(sharedpreference.getBoolean("isModified",false)){
adapter.notifyDataSetChanged();
sharedpreference.edit().putBoolean("isModified",flase).apply();
}
}

答案 1 :(得分:0)

如前一个活动尚未完成,它将调用上一个活动的onResume(),如Android开发者文档上的“活动生命周期”图所示。 Source

答案 2 :(得分:0)

活动打开后,将调用和OnResume()。 这在android文档中有解释 https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

您应该像这样更新RecycleView

@Override
public void onResume(){
   super.onResume();
   myAdapter.notifyDataSetChanged();
}