app ios 杀死进程方法_ios 杀死app 代理方法 - CSDN
  • iOS杀死进程后应用还能继续获取用户位置信息吗,就比如斑马行车,我双击home键退出进程后,它还可以记录我的位置信息?
  • 我的需求是,app推入后台,不做用户信息清除,但是程序被用户双击上滑杀死后,就对app用户信息做一个清除,让用户再次打开app时重新登录,so,就要获取app杀死的事件了,appDelegate里面的...- (void)...

    我的需求是,app推入后台,不做用户信息清除,但是程序被用户双击上滑杀死后,就对app用户信息做一个清除,让用户再次打开app时重新登录,so,就要获取app被杀死的事件了,appDelegate里面的applicationWillTerminate函数不会走,原因我也不知道,但是通过下面的方式是可以实现该需求的,求大神指教破解原理:

    - (void)applicationDidEnterBackground:(UIApplication *)application {
        //实现一个可以后台运行几分钟的权限, 当用户在后台强制退出程序时就会走applicationWillTerminate 了.
        [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];
        
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }
    
    - (void)applicationWillTerminate:(UIApplication *)application {
        //    NSLog(@"程序被杀死");
        [[NSUserDefaults standardUserDefaults] setObject:@"N" forKey:@"isLogined"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
    复制代码
    展开全文
  • 程序被用户双击上滑杀死后,就对app做一些特殊的处理 下面的方法可以获取到用户双击上滑杀死的事件 - (void)applicationDidEnterBackground:(UIApplication *)application { [[UIApplication sharedApplication...

    程序被用户双击上滑杀死后,就对app做一些特殊的处理 下面的方法可以获取到用户双击上滑杀死的事件

    - (void)applicationDidEnterBackground:(UIApplication *)application {

          [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];

    }

    - (void)applicationWillTerminate:(UIApplication *)application {

        NSLog(@"程序被杀死");

        //开始做你自己想做的事

    }

     

    转载于:https://www.cnblogs.com/longqinglei/p/10370369.html

    展开全文
  • 今天添了一个坑,我们app很久之前就有推送功能代码,但是没有太多的实际的推送功能,然后突然发现一个bug,app杀死状态下接收到推送进入app无法响应跳转。 首先摘取一篇优秀的博客内容,梳理一下app在各种情况...

    今天填了一个坑,我们app很久之前就有推送功能代码,但是没有太多的实际的推送功能,然后突然发现一个bug,app在杀死状态下接收到推送进入app无法响应跳转。不好填是因为需要杀死app测试,很不好调试,最后用Hud屏幕打印各种东西才找到原因。

    首先摘取一篇优秀的博客内容,梳理一下app在各种情况接收到推送响应过程。

    设备接到apns发来的通知,应用处理通知有以下几种情况:

    1.应用还没有加载

    这时如果点击通知的显示按钮,会调用didFinishLaunchingWithOptions,不会调用didReceiveRemoteNotification方法。
    如果点击通知的关闭按钮,再点击应用,只会调用didFinishLaunchingWithOptions方法。

    2. 应用在前台(foreground)

    这时如果收到通知,会触发didReceiveRemoteNotification方法。

    3.应用在后台

    1.此时如果收到通知,点击显示按钮,会调用didReceiveRemoteNotification方法。
    2.点击关闭再点击应用,则上面两个方法都不会被调用这时,只能在applicationWillEnterForeground或者applicationDidBecomeActive,根据发过来通知中的badge进行判断是否有通知,然后发请求获取数据

    如第一种所说,didFinishLaunchingWithOptions会被调用但是didReceiveRemoteNotification不会被调用,这个需要特殊解决,但是之前的人写了相关解决代码,但是不是不执行跳转的原因,但是还是先贴一下代码

    if (launchOptions != nil) {
            //app关闭时,收到推送
            [self application:application didReceiveRemoteNotification:launchOptions[@"UIApplicationLaunchOptionsRemoteNotificationKey"]];
        }

    虽然不执行didReceiveRemoteNotification,但是可以从launchOptions中拿到推送,自己手动执行一下即可。

    然后最后找到原因是因为我们在处理跳转的时候没有考虑到当app被杀死执行到推送跳转页面的时候app还没执行到主界面,但是这里却加了判断

    if ([[DataManager sharedDataManager].mainWindow.rootViewController isKindOfClass:[RootTabController class]]){
        // 判断跳转操作
    }

    执行到这里的时候,rootViewController并不是RootTabController,这个时候的window上应该是广告页。
    然后最后采取的方法是上的的判断加else,如果不是的话加一个监听,当进入到app首页后发出通知,然后再此处接收到通知重新执行一次判断跳转操作的代码,不知道还有没有更科学的处理方式

    展开全文
  • https://www.jianshu.com/p/ce0dc53eb627 https://www.cnblogs.com/er-dai-ma-nong/p/5584724.html github: https://github.com/sundayios/AppTianZhuan.git 转载于:https://www.cnblogs.com/sundaysgar...
    展开全文
  • AppDelegate中一些常用方法: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"启动程序,didFinishLaunchingWithOptions"...

    AppDelegate中一些常用方法:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        NSLog(@"启动程序,didFinishLaunchingWithOptions");
        
        return YES;
    }
    
    - (void)applicationWillResignActive:(UIApplication *)application
    {
        NSLog(@"将变为非活跃状态,applicationWillResignActive");
    }
    
    - (void)applicationDidEnterBackground:(UIApplication *)application
    {
        NSLog(@"进入后台,applicationDidEnterBackground");
    }
    
    - (void)applicationWillEnterForeground:(UIApplication *)application
    {
        NSLog(@"由后台进入前台,applicationWillEnterForeground");
    }
    
    - (void)applicationDidBecomeActive:(UIApplication *)application
    {
        NSLog(@"变为活跃状态,applicationDidBecomeActive");
    }
    
    - (void)applicationWillTerminate:(UIApplication *)application
    {
        NSLog(@"程序被杀死,applicationWillTerminate");
    }
    
    - (void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)(void))completionHandler
    {
        NSLog(@" 应用处于后台,所有下载任务完成调用,handleEventsForBackgroundURLSession");
    }

    当进入后台,想继续进行操作,如果没有注册后台任务,可实现如下代码: 

    先定义一个后台任务标识:UIBackgroundTaskIdentifier backgroundTaskIdentifier;
    
    - (void)applicationDidEnterBackground:(UIApplication *)application
    {
        backgroundTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^(){
            // 程序在进入后台一定时间后(application.backgroundTimeRemaining,我测试是180秒),若还未结束后台任务,则会响应该回调,若已结束,则不会进入该回调
            NSLog(@"beginBackgroundTaskWithExpirationHandler");
        }];
        
        // 这里进行需要的操作,可在操作完成调用endBackgroundTask结束后台任务
        [NSTimer scheduledTimerWithTimeInterval:1.f target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
    }
    
    - (void)timerAction
    {
        static int a = 0;
        if (a == 100) [self endBackgroundTask];
        NSLog(@"a : %d", a++);
    }
    
    - (void)endBackgroundTask
    {
        [[UIApplication sharedApplication] endBackgroundTask:backgroundTaskIdentifier];
        backgroundTaskIdentifier = UIBackgroundTaskInvalid;
    }

    监听进程被杀死时,会发现, 程序处于前台被杀死时会调用applicationWillTerminate:方法,程序处于后台时,并不会调用,需要实现如下代码:

    - (void)applicationDidEnterBackground:(UIApplication *)application
    {
        // 实现如下代码,才能使程序处于后台时被杀死,调用applicationWillTerminate:方法
        [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^(){}];
    }
    
    - (void)applicationWillTerminate:(UIApplication *)application
    {
        NSLog(@"程序被杀死,applicationWillTerminate");
    }

    写博客的初心是希望大家共同交流成长,博主水平有限难免有偏颇之处,欢迎批评指正。

    展开全文
  • 转自:点击打开链接苹果官方在iOS7.1以后对CoreLocation SDK进行更新,允许开发者在App杀死的情况下,仍然可以获取用户的地理位置并且做一些操作.前期准备:打开后台定位功能plist文件配置这两项接下来是最核心的地方...
  • iOS中监听 app杀死

    2019-07-19 15:57:34
    // - 添加通知的监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appBecomeActive) name:kApplicationDidBecomeActive object:nil]; [[NSNotificationCenter defaultCenter] ...
  • 因为从用户角度来讲,我既然手动杀死了就是想关闭这个App,关闭的原因有很多,但是重启后还停留在我最后关闭时的页面就不可理解了。但是需求方是大佬,再不愿意也得做。下面说说思路及实现方式。1.功能思路 恢复...
  • 在很多视频软件中,在应用程序被杀死时要做些退出时的清理工作 - (void)applicationWillTerminate:(UIApplication *)application 这个函数被调用的前提是 在Info.plist中设置 UIApplicationExitsOnSuspend为YES ...
  • 项目需求在用户开启定位权限的情况下,实时上传用户的坐标位置,APP杀死的情况下也要能上传。 1、勾选 background modes 的 location updates 2、添加 info.plist 定位权限描述 3、新建一个继承 ...
  • 这时如果点击通知的显示按钮,会调用didFinishLaunchingWithOptions,不会调用didReceiveRemoteNotification方法。 如果点击通知的关闭按钮,再点击应用,只会调用didFinishLaunchingWithOptions方法。 2. 应用在...
  • 感谢这位哥的思路。 这个问题很常见,基本所有app都会遇到这个问题。...app在被系统干掉后,重新进入,是会实例出所有的界面(因为他们都重写了onsaveInstance方法),但是这个界面所有的变量都变为null了(如果...
  • 面试官:“本地推送,在进程以后还可以收到吗?” 我(非常肯定的):“可以的” 面试官:“并不能,不信你回去写个demo吧” 我:“我写过本地推送,确实是可以的啊” 面试官:“如果进程后,还能收到本地...
  • 因为ios杀死app后都可以接收到通知,所以不懂的人就会觉得那Android应该都是可以的啊, 这个真是坑了我好多次啊,还有桌面角标也是同样的,人家ios就是系统支持的啊。我的天!! 希望产品经理和项目经理 多多...
  • App进入到后台时候,会自动调用AppDelegate代理方法- (void)applicationDidEnterBackground:(UIApplication *)application;接下来就是在applicationDidEnterBackground的代理方法中设置- (void)...
  • 关于APP进程杀死,极光推送收不到消息的解决办法网上有的 说 在mainfest中给application设置这个属性android:persistent=”true”,说app杀不死,推送可以收到。 但亲测 并没有什么鸟用 亲测一下方法 有效//自定义...
  • app不让被杀死

    2017-03-26 00:17:00
    没事干的进程直接kill掉,对于用户体验来讲是不会有影响的,但是往往我们的App都会有推送这个功能,恰巧GCM(Google Cloud Messaging)在国内又不能用,所以很多情况下我们也会希望App在后台的时候也尽量不要被。...
1 2 3 4 5 ... 20
收藏数 2,216
精华内容 886
关键字:

app ios 杀死进程方法