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

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

#import "AppDelegate.h"

#import "TIMERUIApplication.h" 

@implementation AppDelegate 

@synthesize window = _window; 

-(BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions  {

          [[NSNotificationCenter defaultCenter]

addObserver:self

selector:

@selector(applicationDidTimeout:)

name:

  kApplicationDidTimeoutNotification

object:nil];

      return YES;

-(void)applicationDidTimeout:(NSNotification *)notif {

 NSLog (@"time exceeded!!"); 

  //这是故事板和xib文件不同的地方。对于你想跳转到的 View Controller,确保下面代码中的id 和故事板中 View Controller 的 Storyboard Identifier 一致。在本例中,即"mainView"。而我的故事板文件名为MainStoryboard.storyboard, 确保你的文件名和 storyboardWithName 参数保持一致。

 UIViewController *controller =

 [[UIStoryboard

storyboardWithName:@"MainStoryboard"

bundle:NULL]

instantiateViewControllerWithIdentifier:

@"mainView"];

  [(UINavigationController*)

self.window.rootViewController

pushViewController:controller

animated:YES];

}

提示: 一旦侦测到触摸,定时器会被启动。也就是说,如果用户触摸了主窗口(例如“mainView”),哪怕并没有从主窗口离开,同一个视图仍然会在指定时间后 push。这在我的 app 中不是问题,但对于你的 app 则可能是个问题。

这将导致视图每隔 x 分钟就push 一次。哪怕侦测到触摸,时钟仍然会被重置。

这个问题的一种解决方案是,在app delegate 中声明一个 Bool 成员 idle,这样,当你想侦测用户是否无动作时将其设置为 true,如果仅仅是跳转到 idle view 则设置为false。然后在 TIMERUIApplication 的 idleTimerExceeded 方法中使用如下的 if 语句。在所有你想侦测用户是否无动作的视图中,将app delegate 的 idle 设置为 true。对于不需要侦测用户是否无动作的视图,将 idle 设置为 false。

-(void)idleTimerExceeded{

          AppDelegate *appdelegate = [[UIApplication

sharedApplication] delegate];

if(appdelegate.idle){

           [[NSNotificationCenter defaultCenter]

  postNotificationName:

  kApplicationDidTimeOutNotification

  object:nil];

           }

}

 

 

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

推荐热点

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

豫ICP备11007008号-1