可以使用FragmentManager中的findFragmentByTag方法来标识Activity。为了实现这一点,我们可以在Activity的onCreate方法中添加一个碎片,然后使用setRetainInstance(true)方法来保留碎片。在onCreate方法中,我们还需要检查是否存在以前保留的碎片,并且如果存在,我们需要清除它以避免重复。
以下是示例代码:
public class MainActivity extends AppCompatActivity {
private static final String FRAGMENT_TAG = "unique_fragment_tag";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//清除之前可能保留的碎片
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(FRAGMENT_TAG);
if (fragment != null) {
fragmentManager.beginTransaction().remove(fragment).commit();
}
//添加新碎片
UniqueFragment uniqueFragment = new UniqueFragment();
fragmentManager.beginTransaction().add(uniqueFragment, FRAGMENT_TAG).commit();
uniqueFragment.setRetainInstance(true);
}
public static class UniqueFragment extends Fragment {
//此处编写你想要执行的代码
}
}
使用此方法后,即使在屏幕旋转后,唯一的碎片标识符仍将保持不变。