如题,我做了一个类似悬浮窗的小辅助工具,设计初衷是要求在任何界面都能一直保持显示,并设计了一个开关来决定是否一直显示和隐藏。但是在运行测试的过程中发现,这个悬浮窗会在某些时候自动消失掉,但是我跟进过并log过removeView的地方,都没看到是我的误操作导致的销毁。
因此怀疑是否是系统在某些特定的环境或者情况下会自动回收这些Window的View,顺便贴下我的部分代码
WindowManager windowManager = getWindowManager(context);
int screenWidth = windowManager.getDefaultDisplay().getWidth();
int screenHeight = windowManager.getDefaultDisplay().getHeight();
if (smallWindow == null) {
smallWindow = new FloatWindowSmallView(context);
if (smallWindowParams == null) {
smallWindowParams = new LayoutParams();
smallWindowParams.type = LayoutParams.TYPE_SYSTEM_ALERT;
smallWindowParams.format = PixelFormat.RGBA_8888;
smallWindowParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
smallWindowParams.gravity = Gravity.LEFT | Gravity.TOP;
smallWindowParams.width = FloatWindowSmallView.viewWidth;
smallWindowParams.height = FloatWindowSmallView.viewHeight;
smallWindowParams.x = screenWidth;
smallWindowParams.y = screenHeight / 2;
}
smallWindow.setParams(smallWindowParams);
windowManager.addView(smallWindow, smallWindowParams);
}
}
上面部分代码是我创建的过程,希望高手给与解答。
Android 通过WindowManager.addVidw创建的窗口系统是否会自动销毁?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- 企鹅不飞 2014-11-14 10:13关注
最后解决的办法是将APK的AndroidManifest.xml中<applicaiton属性中加入了系统属性android:persistent="true"并且将APK放到rom包system\data下打包到rom中。这样被系统回收的概率大大降低,因此无故消失的问题也就减小概率了。
究其原因还是因为应用的优先级太低导致系统内存紧张或者在后台应用过多时系统会优先回收这部分优先级不高的应用。
具体可参考http://blog.csdn.net/zhanghaofor/article/details/41121859
希望对有此疑问的人提供帮助。解决 无用评论 打赏 举报
悬赏问题
- ¥20 删除和修改功能无法调用
- ¥15 kafka topic 所有分副本数修改
- ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
- ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
- ¥40 串口调试助手打开串口后,keil5的代码就停止了
- ¥15 电脑最近经常蓝屏,求大家看看哪的问题
- ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
- ¥50 C++五子棋AI程序编写
- ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
- ¥15 SQL Server analysis services 服务安装失败