Java 在“活动”中添加“后退”按钮

Java 在“活动”中添加“后退”按钮,java,android,android-studio,audio,android-activity,Java,Android,Android Studio,Audio,Android Activity,早上好,伙计们,我有一个代码,在活动开始时播放音频,它会执行欢迎问候,但是当我转到其他活动并返回主菜单时,音频会再次播放,我想注意,当我使用后退操作栏按钮时,我没有这个问题,但我需要在片段或活动中使用按钮,我的应用程序中不能有操作栏 播放音频的代码: new Timer().schedule(new TimerTask() { @Override public void run() { MediaPlayer pla

早上好,伙计们,我有一个代码,在活动开始时播放音频,它会执行欢迎问候,但是当我转到其他活动并返回主菜单时,音频会再次播放,我想注意,当我使用后退操作栏按钮时,我没有这个问题,但我需要在片段或活动中使用按钮,我的应用程序中不能有操作栏

播放音频的代码:

new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                MediaPlayer play= MediaPlayer.create(MainActivity.this,R.raw.audioboatarde);
                play.start();
            }
        }, 1000);
片段上的代码按钮:

button = view.findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            Intent intent1 = new Intent(getContext(), MainActivity.class);
             startActivity(intent1);
        }

    });

当您将活动保留在活动的
onPause
中时,停止媒体播放

@Override
    public void onPause() {
        super.onPause();
        play.stop();
    }
在第二个活动中单击按钮时,不需要重新启动上一个活动,只需调用
onBackPressed()
即可转到上一个活动

button = view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {

       onBackPressed();
    }

});
button = view.findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            Intent intent1 = new Intent(getContext(), MainActivity.class);
             startActivity(intent1);
        }

    });
    @Override
    public void onPause() {
        super.onPause();
        play.stop();
    }

这是我的第二个答案

如果您必须将第一个活动(如果已销毁)与第二个活动重新连接, 您还可以使用
onSaveInstanceState(Bundle outState)
保存活动中的音频播放状态

button = view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {

       onBackPressed();
    }

});
button = view.findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            Intent intent1 = new Intent(getContext(), MainActivity.class);
             startActivity(intent1);
        }

    });
    @Override
    public void onPause() {
        super.onPause();
        play.stop();
    }
在第一个活动中

@Override
public void onSaveInstanceState(Bundle outState) {
   outState.putBoolean("isPlayed",true);
   super.onSaveInstanceState(outState);
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null && savedInstaceState.getBoolean("isPlayed") == false) {
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                MediaPlayer play=  MediaPlayer.create(MainActivity.this,R.raw.audioboatarde);
                play.start();
            }
        }, 1000);
    }
}
在第一个活动的
onCreate()

@Override
public void onSaveInstanceState(Bundle outState) {
   outState.putBoolean("isPlayed",true);
   super.onSaveInstanceState(outState);
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null && savedInstaceState.getBoolean("isPlayed") == false) {
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                MediaPlayer play=  MediaPlayer.create(MainActivity.this,R.raw.audioboatarde);
                play.start();
            }
        }, 1000);
    }
}
稍后,您可以从第二个活动重新启动第一个活动

button = view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {

       onBackPressed();
    }

});
button = view.findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            Intent intent1 = new Intent(getContext(), MainActivity.class);
             startActivity(intent1);
        }

    });
    @Override
    public void onPause() {
        super.onPause();
        play.stop();
    }
不要忘记在第一个活动中停止音频播放

button = view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {

       onBackPressed();
    }

});
button = view.findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            Intent intent1 = new Intent(getContext(), MainActivity.class);
             startActivity(intent1);
        }

    });
    @Override
    public void onPause() {
        super.onPause();
        play.stop();
    }

我在我的活动中使用了这个方法,非常感谢,但这个方法不能直接应用于片段,我尝试了,但没有成功