`
cb269267
  • 浏览: 25472 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

android 摇一摇功能程序的注意事项

 
阅读更多

本人使用的是这段代码 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中实现摇一摇...

    android实现摇一摇功能

    在Android开发中,"摇一摇"功能是一个常见的交互方式,通常用于触发特定的事件或功能,例如游戏中的重新开始、随机抽奖等。本教程将详细介绍如何在Android应用中实现摇一摇功能,并通过改变按钮显示及显示Toast来...

    模拟微信“摇一摇”功能

    在Android平台上实现微信“摇一摇”功能是一个有趣且具有挑战性的任务,涉及到传感器数据的获取、处理以及用户交互的设计。下面将详细讲解这个过程中的关键知识点。 首先,"摇一摇"功能的核心在于手机内置的传感器...

    Android微信摇一摇功能类

    1.单个类实现的摇一摇功能. 2.完全按照微信的参数实现.包括摇动频率,摇动幅度. 3.调用方法: 在Activity中加入下面这行代码,即可让当前Activity完全拥有微信摇一摇功能. ShakeListener mShaker = new ShakeListener...

    Android开发实现摇一摇的功能Java源码打包下载

    在Android应用开发中,"摇一摇"功能是一种常见的用户交互方式,用于触发特定的事件或功能。这个功能通常通过监听设备的加速度传感器来实现。在这个Java源码包中,我们有两个关键文件:`ShakeListener.java` 和 `...

    [Android实例] 仿微信摇一摇功能实现

    在Android开发中,微信的“摇一摇”功能是一个非常有趣的交互设计,它允许用户通过晃动手机来触发特定的事件或活动。本实例将详细讲解如何在Android应用中实现类似的功能。 首先,我们需要理解“摇一摇”功能的核心...

    Android实例源码-摇一摇&重力传感器类安卓源代码(7例).zip

    Android实例源码-摇一摇&重力传感器类安卓源代码...Android摇一摇功能示例源码 “摇一摇”动态更换皮肤完美实现! 加速度传感器 对三个方向的加速度进行测量并实时绘制图像 手机摇一摇DEMO代码,实现摇一摇执行特定程序

    android摇一摇随机变图片

    在Android平台上,"android摇一摇随机变图片"是一个有趣的应用程序,它允许用户通过摇晃手机来触发一系列动态效果,比如随机展示不同的图片,并且伴随着手机震动效果。这个小程序结合了传感器数据处理、图像资源管理...

    Android传感器应用之摇一摇小球运动实现

    在Android平台上,传感器应用是移动开发的一个重要领域,它允许开发者创建各种有趣和实用的交互式功能。"摇一摇"动作就是一个常见的用户交互模式,常用于游戏、抽奖或者清理缓存等场景。本篇文章将深入探讨如何在...

    android手机摇一摇DEMO代码,实现摇一摇执行特定程序.zip

    这个“android手机摇一摇DEMO代码,实现摇一摇执行特定程序”的压缩包,显然是一个示例项目,帮助开发者理解和实践如何在Android应用中集成这种功能。下面我们将深入探讨这个DEMO中的关键知识点。 1. **...

    Android摇一摇Demo

    【Android摇一摇Demo】是一个专门为开发者提供的示例项目,旨在展示如何在Android平台上实现“摇一摇”功能。这个Demo适用于那些希望在自己的应用程序中集成类似微信摇一摇交互体验的开发者。通过学习和参考这个项目...

    Android高级应用源码-Android摇一摇功能示例源码.zip

    在Android开发中,"摇一摇"功能是一种常见的交互方式,它可以让用户通过摇动设备来触发特定的应用程序行为。这个"Android高级应用源码-Android摇一摇功能示例源码.zip"压缩包提供了实现这一功能的完整代码示例。下面...

    Android应用源码之Android摇一摇功能示例源码.zip

    本示例源码提供了一个完整的Android应用,展示了如何在Android应用程序中集成摇一摇功能。 首先,我们来了解“摇一摇”功能的核心原理。它基于手机的加速度传感器(Accelerometer Sensor)。当用户摇动设备时,传感器...

    delphi IOS android 手机摇一摇 控件.rar

    本压缩包“delphi IOS android 手机摇一摇 控件.rar”提供了在 Delphi 中实现手机摇一摇功能的具体解决方案。下面将详细介绍这个控件的工作原理以及如何在 Delphi 应用程序中集成和使用它。 1. **手机摇一摇功能**...

    Android摇一摇demo

    在Android平台上,实现“摇一摇”功能是一个有趣且实用的交互方式,常用于游戏、应用切换、抽奖等场景。本教程将详细讲解如何利用Android的SensorManager和SensorEventListener类来构建一个基本的“摇一摇”示例,即...

    android Vibrator 仿微信摇一摇

    在Android开发中,实现“微信摇一摇”功能是一个相当有趣的互动体验,它结合了设备的传感器技术,尤其是重力感应器(Gravity Sensor),以及Vibrator服务来模拟真实世界中的摇晃动作。这个功能通常用于游戏、抽奖...

    Android摇一摇源代码

    在Android平台上,"摇一摇"功能是一种常见的交互方式,常用于实现各种有趣的应用场景,如刷新内容、触发游戏事件等。在这个名为"Android摇一摇源代码"的项目中,我们可以看到两个关键的文件:ShackActivity.java和...

    android摇骰子程序

    在Android平台上开发应用程序时,经常会遇到需要创建交互性、趣味性的功能,比如“摇骰子”游戏。这个“android摇骰子程序”就是一个简单的实例,它通过点击按钮模拟骰子摇动并显示结果。下面我们将深入探讨这个程序...

    Android 手机摇一摇DEMO代码,实现摇一摇执行特定程序-IT计算机-毕业设计.zip

    在Android平台上,开发一款能响应用户“摇一摇”动作的应用是一种常见的交互方式,它可以用于启动特定程序或触发某些功能。这个"Android手机摇一摇DEMO代码"提供了一个很好的学习资源,帮助开发者理解如何在Android...

    android震动传感器之摇一摇

    在Android平台上,开发一个“摇一摇”功能的应用程序,主要涉及到的是设备的传感器技术,尤其是加速度计和震动传感器。下面将详细讲解这个过程涉及的技术点。 首先,我们需要了解Android系统的传感器框架。Android...

Global site tag (gtag.js) - Google Analytics