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

时间:2015-04-21 18:02:57

标签: android android-intent android-activity

我有一个singleTask的Activity,我想在用户点击按钮时重新启动(重新显示)此活动。

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

是否只是在没有"什么也不做"的情况下重新展示活动,只是继续以前做的事情?

修改

这就是我如何调用我的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();
                    }
                }
            });

1 个答案:

答案 0 :(得分:1)

将您的活动更改为singleTop singleTask,以避免重新启动活动。

然后,像这样打电话给你的活动,

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