注:这类似于复制,但没有其他人解决我的问题。
@Hitesh Tarbundiya's 回答 in Step 2解决了我的问题
我正在使用natario1 CameraView库为安卓录制视频。
我正在使用Fragment
。
我已经把代码写到
但我现在不知道的是,当用户在销毁碎片之前按下手机上的后退按钮或主页按钮时,应该在哪里调用这些方法。
我尝试过从onPause()
、onStop()
、onDestroyView()
和onDestroy()
调用这些方法,但没有成功。
请给我一些建议,谢谢。
发布于 2019-03-15 04:23:08
试试这个,可以解决你的问题。
@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:在您的活动类中实现以下操作
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;
}
}
}
https://stackoverflow.com/questions/55175487
复制相似问题