iOS 在闲置一段时间(用户无动作)后执行指定动作

来源:未知 责任编辑:责任编辑 发表时间:2014-01-20 07:51 点击:

1.   新建 Objective-C 类,继承 UIApplication。

2.   编辑 .h 如下:

#import <Foundation/Foundation.h>

//定义应用程序超时时间,单位为分钟,因此我们会在这个数上乘以60,以便折算成秒数。

#define kApplicationTimeoutInMinutes 5 

//定义通知名称,其真实内容是字符串 "timed out"

#define kApplicationDidTimeoutNotification

@"AppTimeOut" 

@interface TIMERUIApplication : UIApplication {

     NSTimer     *myidleTimer;

-(void)resetIdleTimer; 

@end

3. 编辑 .m 如下:

#import "TIMERUIApplication.h" 

@implementation TIMERUIApplication 

// 监听所有触摸,当屏幕被触摸,时钟将被重置

-(void)sendEvent:(UIEvent *)event {

     [super sendEvent:event];

      if (!myidleTimer) {

         [selfresetIdleTimer];

     }

      NSSet *allTouches = [eventallTouches];

     if ([allTouches count] > 0) {

         UITouchPhase phase= ((UITouch *)

[allTouchesanyObject]).phase;

         if (phase ==UITouchPhaseBegan) {

            [self resetIdleTimer];

         }

      }

}

//重置时钟

-(void)resetIdleTimer {

     if (myidleTimer) {

         [myidleTimerinvalidate];

     }

     //将超时时间由分钟转换成秒数

     int timeout =

kApplicationTimeoutInMinutes* 60;

     myidleTimer = [NSTimer

scheduledTimerWithTimeInterval:timeout

target:self

selector:@selector(idleTimerExceeded)

userInfo:nilrepeats:NO];

  }

//当达到超时时间,张贴 kApplicationTimeoutInMinutes通知

-(void)idleTimerExceeded {

     [[NSNotificationCenter defaultCenter]

  postNotificationName:

kApplicationDidTimeoutNotification

object:nil];

}

@end

4.   修改 main.m :

#import <UIKit/UIKit.h> 

#import "AppDelegate.h"

#import "TIMERUIApplication.h" 

int main(int argc, char *argv[]) {

     @autoreleasepool {

         returnUIApplicationMain(argc, argv,

NSStringFromClass(

    [TIMERUIApplicationclass]),

NSStringFromClass(

[AppDelegate

class]));

     }

}

5. 接下来编辑 AppDelegate.mfile,不需要编辑 AppDelegate.h。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Lexical or Preprocessor Issue 'xxx.h
  • ios学习笔记(二)xcode 4.3.2下实现基本交互
  • ios版本的helloworld
  • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
  • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
  • IOS类似iphone通讯录TableView的完整demo【附源码】
  • UITableView一些方法
  • [iPhone中级]iPhone团购信息客户端的开发 (二)
  • 如何为Iphone应用创建启动界面
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1