如何在不影响其行为的情况下重新启动 singleTask Activity

How to relaunch a singleTask Activity without affect its behaviour

我有一个 Activity 是 singleTask,我想在用户单击按钮时重新启动(重新显示)这个 Activity。

当我第一次调用 activity 时,它将根据通过 Intent 传递的一些数据播放音乐。但是当用户按回到我的 MainActivity 时,他将能够按一个按钮将他带回 Player activity。问题是,当用户按下按钮时,activity 会重新启动,但它似乎不是通过 onNewIntent 启动的,因为它从头开始再次播放(将原始播放列表发送到服务,从开始)。

是否只重新显示 activity 而没有 "doing nothing",只是继续之前的操作?

编辑:

我就是这样调用我的 singleTask Activity:

littlePlayer.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (!isPlaying) {
                        Intent it = new Intent(MainActivity.this, Player_.class);
                        it.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
                        it.putExtra("json", lastJson);
                        it.putExtra("position", position);
                        it.putExtra("playing_position", playingPosition);
                        startActivity(it);
                    }else{
                        Intent it = new Intent(MainActivity.this, Player_.class);
                        it.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(it);
                        //Player_.intent(MainActivity.this).start();
                    }
                }
            });

将 activity 从 singleTask 更改为 singleTop 以避免重新启动 activity。

然后,像这样调用你的activity,

 Intent intent= new Intent(context, YourActivity.class);
 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);