我如何确定某个片段是否已从堆栈中回压/弹出?

时间:2019-04-11 09:58:22

标签: android fragment

我有一个“活动”,其中包含两个片段A和B。默认情况下,片段A被托管。片段B从片段A开始。当用户按回片段B并假设已更改某些数据时,首先我使用B中的以下代码杀死片段B:

if (getActivity() != null) {
    FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
    if (fragmentManager != null) {
        getActivity().getSupportFragmentManager().popBackStackImmediate();
    }
}

我的问题:

我怎么知道片段B已被片段A甚至“活动”“杀死”? 我想在杀死B时刷新A中的数据。

类似

if (B.isKilled()) {
    refreshDataInA();
}

我希望能够同时使用ACTIVITY和片段B。

谢谢!

1 个答案:

答案 0 :(得分:1)

在您的A片段中,onResume方法添加

#include <cstdio>
#include <string>
#include <iostream>

int main()
{
    const std::string input = "[(1.2,3.4)-(6.5,7.4)]";

    double a, b, c, d;
    if (std::sscanf(input.c_str(), "[(%lf,%lf)-(%lf,%lf)]", &a, &b, &c, &d) == 4)
    {
        std::cout << "a=" << a << '\n';
        std::cout << "b=" << b << '\n';
        std::cout << "c=" << c << '\n';
        std::cout << "d=" << d << '\n';
    }
    else
    {
        std::cout << "Did not parse!\n";
    }
}

// Output:
// 
//   a=1.2
//   b=3.4
//   c=6.5
//   d=7.4

尝试一下。