本人使用的是这段代码 http://www.2cto.com/kf/201210/159724.html
使用过程中由于有些许粗心, 纠结了差不多一天,只有两异常:
1.view not attach to the window manager
2.timertask is scheduled already
相关代码:
shakeEventController.setOnShakeListener(new OnShakeListener() { @Override public void OnShake() { //此事件中进行截图 //先隐藏悬浮窗 Log.i("摇一摇context", btnScreenShot.getContext().toString()); wm.removeViewImmediate(btnScreenShot); isAdded = false; //延迟1000MS+设置延迟 截图 if(timer!=null){ timer.cancel(); } timer = new Timer(); if(screenShotTask!=null){ screenShotTask.cancel(); } screenShotTask = new ScreenShotTask(); int delay = 1000 + (shotDelay * 1000); timer.schedule(screenShotTask, delay); } });
下面分析原因:
由于我在做一个截图项目,有一个悬浮按钮,用来截图,当我用摇一摇截图的时候,悬浮按钮需要从windowManager中remove,第一次remove倒是很正常,但是第二次摇的时候,就出现了异常1。这个相当诡异,后来不经意间发现了,在第二次摇一摇的时候,调用了两次remove,然后真想大白。
我的悬浮窗实在一个intentservice中创建的,因此每次onhandleintent的时候就会调用上面那段代码,因此,第一次摇一摇很正常,在第二次摇的时候,shakeEventController中已经存在了一个已注册的ACCELEROMETER的sensor,然后在此调用这段代码,就有两个sensor在监听onshake事件,因此在第二个onshake事件处理的时候,btnScreenShot已经从windowmanager中remove掉了,所以抛出异常:view not attach to the window manager。
第二个异常,同理,这个事件处理了两次,而且几乎是同时的,一个timertask还没完的时候,另一个又schedule,肯定抛出异常:timertask is scheduled already
相关推荐
Android 摇一摇换皮肤
Android摇一摇功能示例源码
Android摇一摇功能示例源码.zip
Android仿微信摇一摇功能实现,加载动画,播放声音
Android应用源码开发Demo,主要用于毕业设计学习。
android摇一摇案例
android摇一摇源码,类似微信摇一摇
Android摇一摇功能示例源码.rar
手机摇一摇DEMO代码,实现摇一摇执行特定程序.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
一个简单的安卓摇一摇的功能实现,当初刚进入安卓这一行第一个项目要求,还是挺有感情的
由于项目需要做了一个摇一摇的功能。目前摇一摇功能已经实现,并做了相关动画的处理,代码也稍微加了点注释,方便下载的同学浏览。欢迎大家评论。
手机摇一摇DEMO代码,实现摇一摇执行特定程序
Android开发,实现摇一摇的功能效果。
简单实现了摇一摇功能来改变按钮显示及显示toast
1.单个类实现的摇一摇功能. 2.完全按照微信的参数实现.包括摇动频率,摇动幅度. 3.调用方法: 在Activity中加入下面这行代码,即可让当前Activity完全拥有微信摇一摇功能. ShakeListener mShaker = new ShakeListener...
Android实例源码-摇一摇&重力传感器类安卓源代码...Android摇一摇功能示例源码 “摇一摇”动态更换皮肤完美实现! 加速度传感器 对三个方向的加速度进行测量并实时绘制图像 手机摇一摇DEMO代码,实现摇一摇执行特定程序
Android开发实现摇一摇的功能Java源码打包下载,内含2个JAVA文件,ShakeListener+ShackActivity
Android上实现摇动监测,可以设置监测阀值
加速度传感器是最常见的传感器,大部分Android手机都内置了加速度传感器,加速度传感器运用最广泛的功能就是微信的摇一摇功能,用户通过摇晃手机寻找周围的人,其它类似的应用还摇骰子、玩游戏等。
android手机摇一摇DEMO代码,实现摇一摇执行特定程序.zip