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

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

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

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

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


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

目录
相关文章
|
6月前
游戏辅助 -- DLL窗口实现人物走动
游戏辅助 -- DLL窗口实现人物走动
28 0
|
5月前
|
安全 程序员 定位技术
程序员必知:地图显示的步骤
程序员必知:地图显示的步骤
60 8
|
4月前
|
小程序 定位技术 API
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
328 0
|
6月前
|
Android开发
个人热点蓝条出现和消失时,页面下压和恢复导致页面混乱及蓝条下压页面底部控件看不到的问题
个人热点蓝条出现和消失时,页面下压和恢复导致页面混乱及蓝条下压页面底部控件看不到的问题
56 0
|
移动开发 定位技术
百度地图H5手机端自动定位并更换图标的解决方案
百度地图H5手机端自动定位并更换图标的解决方案
163 0
|
前端开发
用HTML+css制作一个动态的天气图标
用HTML+css制作一个动态的天气图标
187 0
用HTML+css制作一个动态的天气图标
|
传感器 网络协议 物联网
5_1_1_首页信息展示屏_整体介绍_技术点及获取电池电量|学习笔记
快速学习5_1_1_首页信息展示屏_整体介绍_技术点及获取电池电量。
312 0
5_1_1_首页信息展示屏_整体介绍_技术点及获取电池电量|学习笔记
|
定位技术 API 开发工具
百度地图开发-显示地图默认界面 03
百度地图开发-显示地图默认界面 03
285 1
百度地图开发-显示地图默认界面 03
|
编解码
根据用户浏览页面的设备和屏幕的分辨率,在页面上显示不同的页面和不同大小的图片
根据用户浏览页面的设备和屏幕的分辨率,在页面上显示不同的页面和不同大小的图片
146 0
根据用户浏览页面的设备和屏幕的分辨率,在页面上显示不同的页面和不同大小的图片