小编JC.*_*JC.的帖子

FragmentStatePagerAdapter内存泄漏(带有viewpager的嵌套片段)

我的适配器中有"内存泄漏"(引用将在后面解释).我目前正在使用嵌套片段来托管viewpager.

我的设置如下:
1.活动(托管片段A的空活动)
2.片段A - 使用Fragmentstatepageradapter托管viewpager的片段.每个viewpager页面都包含片段B.
3.片段B - 包含imageview的片段.

除非发生配置更改,否则一切都很好.监控堆,每次轮换发生时,它似乎增长100 kb.手动GCing不会释放内存.

我尝试过的事情:
1.用空白片段替换片段B - 出现同样的问题,因此不是造成问题的imageview.
2.删除片段A和B并旋转活动.没有发生内存泄漏,所以它不是活动.
3.在任何方向改变之前使用MAT并且在旋转大约50次之后使用MAT以使堆积起来.MAT显示了一个主要的嫌疑人,这是我的适配器类.它显示了7MB的保留堆(非常小的浅堆)观察者,如下所示:

array java.util.ArrayList @ 0x42079938 24 7,000,832 
.\mObservers android.database.DataSetObservable @ 0x42053508 16 7,000,848 
..\mObservable com.example.main.Adapter@ 0x4205a048 40 7,001,416 
Run Code Online (Sandbox Code Playgroud)

为什么我在片段中使用viewpager:
1.我想通过设置setretaininstance(true)来保持适配器的状态以及与viewpager相关的其他变量.
2.配置更改后,我不重新创建适配器,而是使用旧的适配器连接到viewpager.
3.如果我不重用旧适配器但在配置更改后创建新适配器,则内存泄漏消失.
4.关闭活动并返回上一个活动后,内存泄漏也消失了.

有任何想法吗?非常感谢任何帮助.

谢谢,JC

android memory-leaks android-viewpager fragmentstatepageradapter

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

如何在Excel中获取显示的值而不是实际值?

我有一个包含日期的单元格."05/11/09"目前显示为"11-MAY-09".如何复制粘贴或使用VBA将字符串"11-MAY-09"放入其旁边的单元格中(不是"05/11/09")?

除了自己拼出日期之外,我无法弄明白.

format excel vba copy date

6
推荐指数
2
解决办法
1万
查看次数

在MS Access中存储数据并在Excel中查询它

我目前正处于一个非IT项目,目前有数据需要一些系统分析(数学公式).数据当前存储在Excel中,但手动输入/按下Excel中的数据进行分析是一件痛苦的事.

  1. 将数据存储在MS Access中并使用Excel查询Access会更好吗?换句话说,将数据存储在访问中并在Excel中进行分析.能够对数据进行SQL查询也可以简化分析.

  2. 如果是这样,您是否有任何网站/书籍描述我将如何从Excel查询Access?

database excel ms-access

5
推荐指数
1
解决办法
6980
查看次数

从oracle中选择随机样本时两个查询之间的差异

这个问题回答了如何从oracle中选择随机样本的问题,这正是我所需要的.但我不明白该解决方案之间的区别

SELECT  *
FROM    (
        SELECT  *
        FROM    mytable
        ORDER BY
                dbms_random.value
        )
WHERE rownum <= 1000
Run Code Online (Sandbox Code Playgroud)

和类似的东西

select * from mytable where rownum<=1000 order by dbms_random.value
Run Code Online (Sandbox Code Playgroud)

当我使用第一种方法查询时,它需要很长时间(仍然没有完成)但是当我使用第二种方法查询时,它非常快,但结果似乎不是随机的.

感谢和建议/方向,你们都可以提供.

谢谢!

JC

sql oracle random

2
推荐指数
1
解决办法
1892
查看次数