当应用程序从后台进入前台时,onBackPress() 不起作用
Posted
技术标签:
【中文标题】当应用程序从后台进入前台时,onBackPress() 不起作用【英文标题】:onBackPress() is not working when app comes to foreground from background 【发布时间】:2020-05-23 16:40:11 【问题描述】:我的活动中有一个 videoView。当应用程序从后台进入前台以及由于 videoView.seekTo(1) 而锁定我的手机并解锁它时,onBackPress() 不起作用。我们如何解决它
下面是我的代码。请帮忙
public class VideoPreviewActivity extends implements View.OnClickListener
TextView tv_response;
ImageView iv_video_preview;
VideoView videoView;
@SuppressLint("ClickableViewAccessibility", "InlinedApi")
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_preview);
processIntent(getIntent());
public void processIntent(Intent intent)
int is_doc_context = intent.getIntExtra(IS_DOC_CONTEXT, 2);
if (is_doc_context == 1)
final MediaController mc = new MediaController(this);
mc.setVisibility(View.GONE);
mc.setAnchorView(videoView);
mc.setMediaPlayer(videoView);
final Uri video = Uri.parse(videoFileString);
videoView.setMediaController(mc);
videoView.setVideoURI(video);
videoView.seekTo( 1 );
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
@Override
public void onCompletion(MediaPlayer mp)
);
@Override
protected void onResume()
videoView.seekTo( 1 );
super.onResume();
@Override
protected void onPause()
if (videoView.isPlaying())
videoView.stopPlayback();
super.onPause();
@Override
public void onBackPressed()
LibUtils.onBackButtonClick(VideoPreviewActivity.this);
如果您需要任何信息,请告诉我。
【问题讨论】:
提供LibUtils.onBackButtonClick
代码。
这是自定义警报对话框
移除 videoView.seekTo(1);从 onResume() 设置搜索位置设置行为
@PraveenSP 那么我如何为 videoView 显示 thumbNail。因为当应用程序从后台进入前台时,VideoView 上会出现黑屏
做一件事在 onPause() 和 onResume() 中保存 seekpos 并寻找保存 pos 的位置 .. 希望你得到我想在这里传达的内容......
【参考方案1】:
在你的重写 onBackPressed() 方法中调用 super.onBackPressed()。
【讨论】:
这个我试过了。但不工作。问题是由于 onResume 中的 videoView,seekTo(1)【参考方案2】:你没有为videoView
打电话给findViewById
。
1) 确保在 xml
或 videoView
中添加 id
:
<VideoView
android:id="@+id/video_view"
android:layout_
android:layout_ />
2) 在onCreate()
中执行此操作:
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_preview);
processIntent(getIntent());
//here find the video view
videoView = findViewById(R.id.video_view);
3) 在您的onBackPressed()
中还有一件事:
@Override
public void onBackPressed()
LibUtils.onBackButtonClick(VideoPreviewActivity.this);
//add this
super.onBackPressed();
【讨论】:
以上是关于当应用程序从后台进入前台时,onBackPress() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序从后台进入前台时,UITableViewCell 中的 UIButton 不保留图像?