1014-31-首页12-显示weibo未读数--后台运行---定时器

/**
 *  当app进入后台时调用
 */
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    /**
     *  app的状态
     *  1.死亡状态:没有打开app
     *  2.前台运行状态
     *  3.后台暂停状态:停止一切动画、定时器、多媒体、联网操作,很难再作其他操作
     *  4.后台运行状态
     */
    // 向操作系统申请后台运行的资格,能维持多久,是不确定的
    UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{
        // 当申请的后台运行时间已经结束(过期),就会调用这个block
        
        // 赶紧结束任务
        [application endBackgroundTask:task];
    }];
    
    // 在Info.plist中设置后台模式:Required background modes == App plays audio or streams audio/video using AirPlay
    // 搞一个0kb的MP3文件,没有声音
    // 循环播放
    
    // 以前的后台模式只有3种
    // 保持网络连接
    // 多媒体应用
    // VOIP:网络电话
}

----------------------------------------------------------------------------------------------------

- (void)test {

// 获得未读数
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(setupUnreadCount) userInfo:nil repeats:YES];
    // 主线程也会抽时间处理一下timer(不管主线程是否正在其他事件)
    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

}

/**
 *  获得未读数
 */
- (void)setupUnreadCount
{
//    HWLog(@"setupUnreadCount");
//    return;
    // 1.请求管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    // 2.拼接请求参数
    HWAccount *account = [HWAccountTool account];
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"access_token"] = account.access_token;
    params[@"uid"] = account.uid;
    
    // 3.发送请求
    [mgr GET:@"https://rm.api.weibo.com/2/remind/unread_count.json" parameters:params success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject) {
        // 微博的未读数
//        int status = [responseObject[@"status"] intValue];
        // 设置提醒数字
//        self.tabBarItem.badgeValue = [NSString stringWithFormat:@"%d", status];
        
        // @20 --> @"20"
        // NSNumber --> NSString
        // 设置提醒数字(微博的未读数)
        NSString *status = [responseObject[@"status"] description];  // 用 description 将  NSNumber 轻易转为 字符串对象
        if ([status isEqualToString:@"0"]) { // 如果是0,得清空数字
            self.tabBarItem.badgeValue = nil;
            [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
        } else { // 非0情况
            self.tabBarItem.badgeValue = status;
            [UIApplication sharedApplication].applicationIconBadgeNumber = status.intValue;
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        HWLog(@"请求失败-%@", error);
    }];
}

----------------------------------------------------------------------------------------------------

时间: 2024-12-05 15:16:49

1014-31-首页12-显示weibo未读数--后台运行---定时器的相关文章

新浪微博客户端(21)-获取当前微博未读数并提示用户

HomeViewController.m - (void)viewDidLoad { [super viewDidLoad]; // 初始化NavigationItem [self initNavigationItem]; // 初始化TitleView [self initTitleView]; // 更新TitleView 显示名称 [self updateTitleViewDisplayName]; // 集成下拉刷新控件 [self setupPullToRefreshView]; //

制作首页的显示列表

1. 在首页添加显示问答的列表,并定义好相应的样式. 无序列表 <ul > <li>Coffee</li> <li>Tea</li> <li>Milk</li> </ul> 1 <div id="list-container"> 2 <!-- 文章列表模块 --> 3 <ul class="note-list" infinite-scroll

iOS微博项目(五)- 实现超链接和时间,下拉,未读数,微博正文,评论

1. 正则表达式的使用 2. 实现超链接和时间,来源 3 下拉 1)baseTableView,用于下拉等 2)weiboTableView 多个地方都可以用到这个list 3)重构微博列表 4)下拉刷新和控制器的通信 5)下拉实现 6)显示未读数 7)加载提示 3. 显示微博正文 1)显示评论, 一开始一直不出来,调试了两天哎,后来发现是xib中有无关的label,删掉就好了... 2)显示评论数,开始评论数的section一直覆盖到了评论上面,后来发现是现在应该用 - (double) ta

dedecms友情链接首页不显示LOGO图片处理方法

dedecms友情链接首页不显示LOGO图片处理方法如下: 进入后台--系统设置---默认模板管理,找到主页模块 index.htm,点修改, 把下面代码: <strong>友情链接</strong> <span class="more"> <a href="plus/flink.php">所有链接</a> | <a href="plus/flink_add.php">申请加

Ubuntu连接以太网时显示“设备未托管”的解决办法

Ubuntu连接以太网时显示"设备未托管"的解决办法 故障分析: 电脑之前可能设置过PPOE(有线宽带虚拟拨号),常见为连接校园拨号宽带. 解决办法: 第一步:打开终端 第二步:切换到root用户 第三步:切换到 /etc/network 目录下:cd /etc/network/ 第四步:键入vim interface进入编辑interfaces文件模式.最后一行内容的意思是说eth0需要手动配置连接,但是当前局域网是DHCP网络,也就是接入网络的电脑需要"自动获取IP地址&

制作首页的显示列表(2017.11.29)

1. 在首页添加显示问答的列表,并定义好相应的样式. 无序列表 <ul > <li>Coffee</li> <li>Tea</li> <li>Milk</li> </ul> 代码如下: {% extends 'base.html' %} {% block title %}首页{% endblock %} {% block head %} <link href="https://maxcdn.bo

制作首页的显示列表。

1. 在首页添加显示问答的列表,并定义好相应的样式. 无序列表 <ul > <li>Coffee</li> <li>Tea</li> <li>Milk</li> </ul> 2. 用字典向index.html传递参数. {% block main%} <p>{{user}} context</p> <ul class="list-group"> <l

Hexo瞎折腾系列(4) - 站点首页不显示文章全文

文章摘要设置 打开主题配置文件 _config.yml 文件,找到如下: # Automatically Excerpt. Not recommend. # Please use <!-- more --> in the post to control excerpt accurately. auto_excerpt: enable: false length: 150 把这里的false改为true就可以了在首页启动显示文章预览了,length是显示预览的长度. 这里我们可以通过在文章使用&

golang 如何查看channel通道中未读数据的长度

可以通过内建函数len查看channel中元素的个数. 内建函数len的定义如下: func len(v Type) int The len built-in function returns the length of v, according to its type: Array: the number of elements in v.数组中元素的个数 Pointer to array: the number of elements in *v (even if v is nil).数组中