应用启动首次进入多视图页面可能出现地图黑屏问题

简介: 应用启动首次进入多视图页面可能出现地图黑屏问题

用户接单并等待计费状态,关闭应用再进入应用自动进入等待结束计费页面,有低概率出现地图加载失败地图为黑色或四方格,进入其它页面后再次进入该页面地图显示正常。

由于接单页面图层超多,并且还启动了长连接线程,所以可能接单地图页面在显示时,地图可能没有初始化完毕。

修改方案,对地图的唯一实例在应用启动时就初始画地图,进入接单页面时就直接从地图唯一实例中取就可以了。


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    FLDDLogDebug(@"函数");
    launchedFlag = NO;
    [[SingleAsyncSocket sharedInstance] initData];
    .
    .
    .
    }
-(void)initData
{
    FLDDLogDebug(@"函数");
    //通过判断是否生成管道来防止重复初始化
    if(nil == self.endWaitPipe)
    {
        //fir
        [FIR handleCrashWithKey:GENERALKEY];
        //友盟分享
        [UMSocialData setAppKey:MUMENGKEY];
        //友盟统计
        [MobClick startWithAppkey:MUMENGKEY reportPolicy:BATCH   channelId:@"web"];

        [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeClear];
        //地图
        [MAMapServices sharedServices].apiKey= MAMAPKEY;
        [AMapNaviServices sharedServices].apiKey =MAMAPKEY;
        [AMapSearchServices sharedServices].apiKey = MAMAPKEY;
        NSString *initString = [[NSString alloc] initWithFormat:@"appid=%@",IFLYKEY];
        [IFlySpeechUtility createUtility:initString];

        [[Singleton sharedInstance] setMAMapViewInstance:[[MAMapView alloc] initWithFrame:CGRectMake(0, 0, kControlWidth, kControlHeight)]];
        self.endWaitPipe = [NSPipe pipe];

    }
}


-(void)initMap
{
    MAMapView *namapView = (MAMapView *)([[Singleton sharedInstance] getMAMapViewInstance]);
    if(nil == namapView)
    {
        _mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, kControlWidth, kControlHeight)];
        [[Singleton sharedInstance] setMAMapViewInstance:_mapView];
    }
    else
    {
        CGRect newRect = CGRectMake(0, 0, kControlWidth, kControlHeight);
        namapView.frame = newRect;
        _mapView = namapView;
    }

    _mapView.delegate = self;
    [self.view addSubview:_mapView];

    [self.view sendSubviewToBack:_mapView];

    [self initAMapProperty];
    //定位
    _mapView.showsUserLocation = YES;
}

地图唯一实例见文章:

http://blog.csdn.net/jia12216/article/details/49276155

目录
相关文章
|
JavaScript 前端开发 程序员
node.js这些常用命令,你都会了吗?
本文介绍了Node.js和npm的常用命令。在npm方面,包括安装、卸载、更新包,初始化项目,运行脚本等;在Node.js方面,涉及运行JavaScript文件、启用调试模式和查看版本信息等。掌握这些基础命令对于日常开发至关重要。
|
Linux 数据安全/隐私保护
CentOS设置IP地址的方法
CentOS设置IP地址的方法
3662 0
|
8月前
|
JSON 运维 Ubuntu
在Docker上部署Ollama+AnythingLLM完成本地LLM Agent部署
通过以上步骤,您可以成功在Docker上部署Ollama和AnythingLLM,实现本地LLM Agent的功能。在部署过程中,确保环境和配置正确,以避免不必要的问题。希望本文能够帮助您顺利完成部署,并在本地环境中高效地使用LLM模型。
1997 8
|
前端开发
基于jeecg-boot的flowable流程增加部门经理审批功能
基于jeecg-boot的flowable流程增加部门经理审批功能
494 0
|
Java Linux Maven
Maven 仓库
Maven仓库管理依赖,包括本地、中央和远程仓库。本地仓库在首次运行时创建,默认位于用户目录的`.m2/repository`。若本地缺少构件,Maven会从远程仓库下载,中央仓库是默认的远程源,包含大量开源Java构件。中央仓库无需配置,可通过HTTP访问,[search.maven.org](http://search.maven.org/#browse)可浏览其内容。
|
存储 算法 Java
Java性能优化(三):Java基础-HashMap的设计与优化
HashMap核心特性数据结构:HashMap采用哈希表数据结构来存储键值对,利用哈希函数和哈希表快速定位元素位置,提供高效的键值对查询。参数设置初始容量:HashMap允许用户根据使用场景设定初始容量,以优化性能。在预知数据量时,可以通过计算(初始容量=预知数据量/加载因子)来设定合适的初始容量,以减少扩容操作,提高效率。加载因子:加载因子定义了哈希表何时进行扩容的阈值。加载因子较小时,哈希表会更早地进行扩容,减少哈希冲突;加载因子较大时,会提高内存利用率但可能增加哈希冲突。
665 2
|
Kubernetes Java 微服务
使用Spring Boot构建微服务架构
使用Spring Boot构建微服务架构
|
JavaScript API 开发者
使用 el-autocomplete 实现远程搜索功能
使用 el-autocomplete 实现远程搜索功能
1424 0
|
存储 弹性计算 大数据
阿里云4核16G配置云服务器价格多少钱?2024年阿里云4核16G配置云服务器性能测评参考
阿里云4核16G配置云服务器的价格根据实例规格和促销活动的不同而有所变化。以ECS云服务器经济型e实例为例,其价格为26元1个月、149元半年或79元3个月。此外,还有其他实例规格可供选择,如通用型g7、通用型g8i、AMD通用型g8a、性能增强通用型g8ae、高主频通用型hfg8i、AMD通用型g7a、内存型r7p等。 在性能测评方面,阿里云4核16G配置的云服务器采用了英特尔E5-2680v4处理器,具备良好的扩展性,可以满足大多数中小型企业或个人开发者的需求。此外,阿里云提供的特价4核16G服务器还配备了10M公网带宽和100GB ESSD Entry系统盘,提供了良好的网络性能和存储
627 0
|
Web App开发 JavaScript 前端开发
JS字符串补全方法padStart()和padEnd()简介
JS字符串补全方法padStart()和padEnd()简介
1102 6