在没有用户交互的情况下显示片段并在几秒钟后将其关闭

Show fragment and close it after a few seconds without user interactions

我想显示一个片段 5 秒,然后在没有用户交互的情况下将其关闭。这是我的代码。

@Override
public void onResume() {
    super.onResume();
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(5000);
                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        listener.closeFragment(null);
                    }
                });
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }).run();
}

listener.closeFragment(null);方法效果很好(它关闭片段)但片段从未显示。就像线程在片段可见之前运行一样。任何想法?可以吗?

你不应该使用 .start() 而不是 .运行() 吗?

您只是按顺序调用该线程的逻辑。

希望对您有所帮助。