从 Activity 到片段调用的 OnResume 方法未更新变量

Called OnResume Method From Activity to Fragment is not Updating Variables

我有几个小时都无法解决的问题,

我在 activity 中有一个片段,有时我用下面的代码调用片段:

        newsFeedFragment fragment = new newsFeedFragment();
        android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.hide(getSupportFragmentManager().findFragmentById(R.id.fragment_container));
        fragmentTransaction.hide(getSupportFragmentManager().findFragmentByTag("notifications_fragment"));
        fragmentTransaction.show(getSupportFragmentManager().findFragmentByTag("news_feed_fragment"));
        fragmentTransaction.addToBackStack(null);
        fragment.onResume();
        fragmentTransaction.commit();

由于在显示片段时未调用 onResume,因此我在下面的代码中使用了 "fragment.onResume();"。当显示片段时,将调用 onResume。但是,我尝试在 onResume 方法中更新一个变量,但它没有用下面的代码更新。每当调用 onResume 时,我都会在日志中看到“1”作为结果,但我希望它每次都增加 1。有没有办法让它工作?

int refreshNotificationVar = 0; //in the main class

 @Override
    public void onResume(){
        super.onResume();

        refreshNotificationVar = refreshNotificationVar + 1;

        System.out.println(refreshNotificationVar);

    }

在 onPause 和 onResume 的情况下不能依赖实例变量;您可以在某种程度上依赖静态变量;你可以使用 onSaveInstanceState;或者使用 Singleton class 来存储变量值;或存储在共享首选项中;或者根据您的需要存储在数据库中。在您的情况下,我会使用单例 class 来存储值,并将它们 get/set 存储在 onPause/onResume.