小编use*_*771的帖子

android服务是否可以保证调用onDestroy()?

android上的Activity的生命周期图并不保证会调用onDestroy(),但是可能会终止该进程并突然删除Activity.android上的服务的生命周期图确保了将调用onDestroy().所以我有两个与这种差异有关的问题.

首先,如果Service是与Activity相同的进程的一部分,是否调用了Service onDestroy(),虽然没有调用Activity onDestroy()?我不这么认为,因为"杀死进程"表明操作系统正在停止其线程并释放其资源.

如果是这样的话,操作系统是否会突然杀死仅服务进程?

android android-service

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

Android onStop/onDestroy - 什么时候可以使用?

看一下活动生命周期图,我注意到onPause()并且onStop()都可能导致"进程"被杀死.onCreate()当用户想要恢复其应用程序时,需要调用它.重点onStop()不一定是,也不是onDestroy(),但这onPause()可能是活动可能看到的唯一事件.在这种情况下,onPause()必须处理保存应用程序状态,以便用户以后可以返回它,无论是否onStop()被调用.

我可以看到onDestroy()用于清理活动特定资源,这些资源在进程终止操作中自然会被消除.还有什么比这onDestroy()更好的吗?

那会有什么onStop()好处?我为什么要覆盖它?

android

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

WM_TOUCH不会立即发送触地事件

我正在使用触摸屏并使用Windows 7内置驱动程序(因为它从未促使我安装任何).它工作正常,除了一个小问题.当我触摸屏幕时,它不会发送WM_LBUTTONDOWN,直到我将手指从屏幕上移开.它似乎这样做是为了确定我是否打算按住以模拟WM_RBUTTONDOWN.(另外,我试图禁用按住模拟手势,但它在实践中从不禁用.)

所以我想我会收到WM_TOUCH消息.我发现WM_TOUCH(0x240)也没有发送到我的窗口,直到我的手指离开屏幕.我有点认为完全违背了WM_TOUCH的目的.

在注册接收WM_TOUCH消息之前和之后,我在触摸屏幕后立即收到三条消息:

1. Send: 0x02CC (undocumented tablet messages)
2. Post: 0x011B (undocumented)
3. Send: 0x011A (WM_GESTURENOTIFY)
Run Code Online (Sandbox Code Playgroud)

0x011A是WM_GESTURENOTIFY,我的代码要响应(也许我没有正确响应?).我回复标准响应(使用MS的示例代码)来接收完整通知.

另一件事,我在注册触摸消息时开始获取WM_TOUCH,但我仍然继续获取WM_GESTURENOTIFY消息.根据MS文档,一旦我注册获得WM_TOUCH,我就不再获得手势消息了.

如果有人能告诉我如何立即获得WM_TOUCH消息(例如,当我收到WM_GESTURENOTIFY消息时),而不是在我的手指离开触摸屏之后,我会非常感激.

touch windows-7

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

是否有一个手势识别器可以同时处理捏和平移?

所以我正在使用iOS 4.2来为我的应用程序添加缩放和平移.我已经实现了UIPinchGestureRecognizer和UIPanGestureRecognizer的实例.在我看来,其中只有一个是一次识别一个手势.特别地,后者仅在一个手指向下时作出反应,而前者在第二手指存在时作出反应.这没关系,但它有一些副作用,我认为这会产生低劣的用户体验质量.

当您放下两根手指然后移动其中一根手指时,图像会像应该的那样展开(放大),但手指下方的像素不再位于手指下方.图像从图像中心缩放,而不是两个手指之间的中点.而这个中心点本身就在发展.我希望中心点的运动能够决定整体图像的平移.

几乎所有iOS应用程序都有相同的行为,图像放大或缩小图像中心周围而不是手指跟踪手指下方的像素?

在我看来,创建一个自定义手势识别器是解决这个问题的正确设计方法,但在我看来,有人会创建这样的识别器,以便商业免费下载和使用.有没有这样的UIGestureRecognizer?

ios uipinchgesturerecognizer

4
推荐指数
1
解决办法
5760
查看次数

我如何等待NSStream打开或失败?

目前,当我打开一个NSInputStream(例如)时,我可以将其设置为获得一个表明它已完全打开的事件.但如果它失败了,根本就没有事件.我从未被告知开幕未能完成.我可以在尝试打开时进行轮询,但是我必须在很长一段时间内绑定一个线程.

我想要做的是编写有效的代码,等待流打开或无法打开.使用NSStream等有没有这样的方式?

我还想过创建一个我可以等待一段时间的事件.如果连接成功,事件将发出信号并弹出我的等待状态.如果超时发生,我可以测试状态并查看它是否失败或再次返回等待状态.但当然这是计划B,不是雄辩而且效率不高.通过CocoaTouch文档查看并不清楚如何创建这样一个我可以等待超时的信号.

任何帮助,将不胜感激.

nsstream ios

3
推荐指数
1
解决办法
2972
查看次数