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

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

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

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

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


- (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

目录
相关文章
|
8月前
|
小程序 定位技术 API
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
910 0
|
10月前
|
前端开发 C# 图形学
unity按钮绑定与场景切换
unity按钮绑定与场景切换
102 0
|
移动开发 前端开发
前端(四):移动端页面闪烁、设备识别、全屏切换
移动端页面闪烁、设备识别、全屏切换
175 0
|
移动开发 定位技术
百度地图H5手机端自动定位并更换图标的解决方案
百度地图H5手机端自动定位并更换图标的解决方案
221 0
|
传感器 网络协议 物联网
5_1_1_首页信息展示屏_整体介绍_技术点及获取电池电量|学习笔记
快速学习5_1_1_首页信息展示屏_整体介绍_技术点及获取电池电量。
334 0
5_1_1_首页信息展示屏_整体介绍_技术点及获取电池电量|学习笔记
|
编解码 Java Android开发
Launcher 桌面布局右侧不满屏代码跟踪记录
Launcher 桌面布局右侧不满屏代码跟踪记录
120 0
|
定位技术 API 开发工具
百度地图开发-显示地图默认界面 03
百度地图开发-显示地图默认界面 03
312 1
百度地图开发-显示地图默认界面 03
|
编解码
根据用户浏览页面的设备和屏幕的分辨率,在页面上显示不同的页面和不同大小的图片
根据用户浏览页面的设备和屏幕的分辨率,在页面上显示不同的页面和不同大小的图片
167 0
根据用户浏览页面的设备和屏幕的分辨率,在页面上显示不同的页面和不同大小的图片
|
调度 Windows
Mac 技术篇-触发角功能设置一步回到桌面、快速锁屏、展示启动图应用列表
Mac 技术篇-触发角功能设置一步回到桌面、快速锁屏、展示启动图应用列表
191 0
Mac 技术篇-触发角功能设置一步回到桌面、快速锁屏、展示启动图应用列表