Java Android:活动恢复时黑屏闪烁
我对我创建的Java Android:活动恢复时黑屏闪烁,java,android,android-activity,Java,Android,Android Activity,我对我创建的TabbedActivity有问题 我注意到,如果我把我的应用程序放在后台,然后把它放回前台,屏幕会在布局重新出现之前变黑一会儿。看起来好像正在重新创建活动,但我已确认,在应用程序恢复时,不会调用onCreate() 我在活动中的onResume()和onStart()方法中设置断点,以查看黑屏何时出现。当应用程序返回前台时,会调用onStart(),然后调用onResume(),然后屏幕会在瞬间闪烁黑色。之后,布局将重新出现。如下所示: 我想指出的是,这个活动的onCreate(
TabbedActivity
有问题
我注意到,如果我把我的应用程序放在后台,然后把它放回前台,屏幕会在布局重新出现之前变黑一会儿。看起来好像正在重新创建活动,但我已确认,在应用程序恢复时,不会调用onCreate()
我在活动中的onResume()
和onStart()
方法中设置断点,以查看黑屏何时出现。当应用程序返回前台时,会调用onStart()
,然后调用onResume()
,然后屏幕会在瞬间闪烁黑色。之后,布局将重新出现。如下所示:
我想指出的是,这个活动的onCreate()
和onResume()
方法除了调用它们的超类之外都是空的。上面gif中显示的片段甚至没有覆盖onResume()
或onCreate()
方法。此外,在我的应用程序中的其他非选项卡式活动中,此行为不会发生-它只发生在选项卡式活动中
如果需要更多信息,请告诉我,我将很乐意提供。我只是不确定这个问题可能发生在哪里
编辑:
我意识到,当我注释掉另一个片段的onResume()方法的内容时,这种情况不再发生。下面是该方法的外观:
@Override
public void onResume() {
super.onResume();
System.out.println("RESUME");
if (mShowCamera != null)
{
mShowCamera.camera = null;
}
mCamera = Camera.open();
mShowCamera = new ShowCamera(getContext(), mCamera);
mMainCamLayout = (FrameLayout)getView().findViewById(R.id.camLayout);
mMainCamLayout.addView(mShowCamera);
Camera.Parameters cameraParameters = mCamera.getParameters();
cameraParameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
if (cameraParameters.getSupportedFocusModes() != null &&
cameraParameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO))
{
mCamera.setParameters(cameraParameters);
}
}
这个问题已经解决了。问题是,当我的应用程序重新成为焦点时,有很多工作要做。这导致加载活动所需的时间增加
此活动附带了一些片段。导致此问题的一个因素是试图缓存过多的片段,如下所示:
ViewPager mViewPager = findViewById(R.id.view_pager);
mViewPager.setOffscreenPageLimit(4);
最小化屏幕外页面的数量使我的活动的初始加载速度明显加快
如果您的活动需要很长时间才能加载,请尝试减少它在OnCreate和OnResume方法中必须完成的工作量