相关疑难解决方法(0)

当片段被替换并放入后栈(或删除)时,它是否留在内存中?

行为是否类似于活动的工作方式?例如,使用Activities,它的工作原理如下:

活动A启动活动B,而B在屏幕上,如果系统需要,系统可以从内存中删除A. 按下BACK后,A将重新创建到内存中,就像它从未离开过一样.

我已经找到了一个明确的解释,说明片段内存发生了什么,并没有发现任何东西.它的工作方式是否相同?例如:

活动C的布局中包含片段F. 然后,在某些时候F片段G替换,但F保持在其后栈中.

F会在C被杀之前留在内存中还是可以根据需要由系统删除?

真的我要问的是,如果我在一个Activity中有一堆复杂的碎片,我是否会冒内存不足的风险?

memory android view android-fragments android-activity

71
推荐指数
2
解决办法
4万
查看次数

从另一个活动返回时,MapFragment地图会加载延迟

据我所知MapFragment,转换动画存在问题.布局上的所有视图都会立即显示,包括MapFragment自己的视图(如缩放按钮).但是只有在动画完成后,地图本身才会加载延迟.

为了说明问题,我做了以下事情:

  1. 我稍微改变了Google地图android API示例中的一个活动.它通过Action Item打开一个空白活动.当我单击后退按钮时,地图将被加载,但仅在转换完成后才会加载.
  2. 我稍稍夸大了过渡效果,这样你就可以更好地看到问题了.我设置了过渡动画的速度开发人员选项5倍.即使在1倍的速度下,这种滞后也令人不安.

观看此视频:http://www.youtube.com/watch?v = 12SEotktlXI

你有什么建议可以防止这种滞后吗?为什么所有视图都会立即加载,但地图本身却没有?

测试环境:Nexus 5,Android 4.4.2,无根

编辑:使用MapView而不是MapFragment时也会出现此问题.

android google-maps android-fragments mapfragment google-maps-android-api-2

10
推荐指数
1
解决办法
1556
查看次数

谷歌地图v2从堆栈弹出片段后滞后

我有一个ActivityMapFragment我添加到Activity编程使用FragmentTransaction:

private static final String MAP_FRAGMENT_TAG = "map";
private MapFragment mapFragment = null;

...

protected void onCreate(Bundle savedInstanceState) {

    ...

    mapFragment = (MapFragment) getFragmentManager().findFragmentByTag(MAP_FRAGMENT_TAG);
    if (mapFragment == null) {
        mapFragment = MapFragment.newInstance();
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
        fragmentTransaction.add(R.id.fragment_wrapper, mapFragment, MAP_FRAGMENT_TAG);
        fragmentTransaction.commit();
    }

    ...

}
Run Code Online (Sandbox Code Playgroud)

标准方式.然后我从中获取GoogleMap实例mapFragment并设置其设置,设置监听器,用它做事.一切正常.

然后当用户完成地图时,AsyncTask触发显示a ProgressDialog,执行一些操作,将不同的片段放入fragment_wrapperProgressDialog再次关闭:

private class GetFlightsTask extends AsyncTask<Double, Void, String> {

@Override
protected void onPreExecute() {
    super.onPreExecute();
    // …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-maps-v2

8
推荐指数
1
解决办法
3767
查看次数