android - 在添加到 android.R.id.content 的 Fragment 中未调用 onStop

标签 android android-fragments fragment

我正在使用 android.R.id.content 添加 fragment ,以便使用以下代码填充 Activity 的空间。

private void doFragmentTransaction(Fragment fragment, String tag) {
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.setCustomAnimations(R.anim.slide_in_bottom_y, R.anim.slide_out_bottom_y,
        R.anim.slide_in_bottom_y, R.anim.slide_out_bottom_y);
    transaction.add(android.R.id.content, fragment, tag);
    transaction.addToBackStack(tag);
    transaction.commitAllowingStateLoss();
}

我遇到了一个问题,无法通过按下后退按钮来捕捉 fragment 关闭的那一刻。生命周期方法 onStop 未被调用。

我应该怎么做才能使其正常工作以调用所有生命周期方法?

最佳答案

您好,您可以像下面这样处理 onBackPressed() Activity

  @Override
public void onBackPressed() {
    if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
        val frag = getSupportFragmentManager().findFragmentById(android.R.id.container);
        if (frag is HomeFragment) {
            Fragment currentFragment = (HomeFragment) frag;
            //do your code
            return
        }
    }
    super.onBackPressed();
}

关于android - 在添加到 android.R.id.content 的 Fragment 中未调用 onStop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54707732/

相关文章:

java - 调用 removeLocationUpdates 后位置回调不会停止

java - 如何获取自定义 View onclick 上的位置

android - 自定义具有不同背景颜色的操作栏 - Android

java - Android - 如何从子 SurfaceView 访问 fragment 中的方法?

css - 链接到片段时,父 SVG 默认为 150x300 - 如何修复?

Android 定期从服务向 Activity 发送数据

android - 预安装的应用程序是否会收到 ACTION_BOOT_COMPLETED

Android - SupportMapFragment with GoogleMaps API 2.0 给出 IllegalArgumentException

java - 布局更改时的 fragment 管理

android - 将数据从 Activity 传递到另一个 Activity,然后传递到 ViewPager 中的 fragment