попробуйте, может решить вашу проблему.
@Override
public void onBackPressed() {
if (mMediaRecorder != null) {
//Wtire your code for stop video, on back press
mMediaRecorder.stop();
mMediaRecorder.reset();
}else{
super.onBackPressed();
}
}
Если вы находитесь во фрагменте, выполните этот шаг.
Шаг 1: создать один файл интерфейса
public interface IOnBackPressed {
/**
* If you return true the back press will not be taken into account, otherwise the activity will act naturally
* @return true if your processing has priority if not false
*/
boolean onBackPressed();
}
Шаг 2: в вашем классе Activity реализуйте это,
public class MyActivity extends Activity {
@Override public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.main_container);
if (!(fragment instanceof IOnBackPressed) || !((IOnBackPressed) fragment).onBackPressed()) {
super.onBackPressed();
}
}
}
Шаг 3: Теперь в вашем интерфейсе реализатора класса фрагмента напишите так:
public class MyFragment extends Fragment implements IOnBackPressed{
@Override
public boolean onBackPressed() {
if (myCondition) {
if (mMediaRecorder != null) {
//Wtire your code for stop video, on back press
mMediaRecorder.stop();
mMediaRecorder.reset();
}
return true;
} else {
return false;
}
}
}