为什么进入动画在新线程中不起作用?

Why entering animation is not working in new thread?

从新线程启动 activity 时,进入过渡动画不起作用。

 new Thread(new Runnable() {
                @Override
                public void run() {
                    Intent listIntent = new Intent(HomeFragment.this.getActivity(),
                            ListActivity.class);
                    listIntent.putExtra(getString(R.string.type_id), data.get(i).getType_id());
                    listIntent.putExtra(getString(R.string.translation_title), data.get(i).getTranslate_type());
                    startActivity(listIntent);
                    getActivity().overridePendingTransition(R.anim.slide_up, R.anim.fade_in);
                }
            }).start();

但是过渡动画在 ui 线程中有效。为什么进入动画在新线程中不起作用?

你只需使用这个:

Handler h = new Handler();
h.postDelayed(new Runnable() {

    @Override
    public void run() {
         Intent listIntent = new Intent(HomeFragment.this.getActivity(),
                        ListActivity.class);
         listIntent.putExtra(getString(R.string.type_id), data.get(i).getType_id());
         listIntent.putExtra(getString(R.string.translation_title), data.get(i).getTranslate_type());
         startActivity(listIntent);
         getActivity().overridePendingTransition(R.anim.slide_up, R.anim.fade_in);
    }
}, 100);

编码愉快!!

为什么要创建一个单独的线程来创建 activity?

Intent intent = new Intent( getContext(), ListActivity.class);
startActivity(intent);

您关于启动新 activity 的呼吁被视为 UI 部分,请仅在 UI 线程中进行,

因为启动新的 activity 会占用你的整个屏幕,之前暂停旧动画可能是更好的解决方案,因为用户无论如何都看不到你的动画