首页 文章 精选 留言 我的

精选列表

搜索[web开发框架],共10000篇文章
优秀的个人博客,低调大师

android开发—Fragment中onCreateView()和onActivityCreated()的区别

在编写Fragment时,在onCreateView()方法中启动了一个初始化自定义View的方法 initView(),但是调试时就崩溃,打印日志发现是这里出了问题,就将这个方法放到了onActivityCreated()方法中启动,就没有再崩溃过,不明白为什么,查询API和资料后总结如下:书上的讲解是:onCreateView():每次创建、绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View组件。onActivityCreated():当Fragment所在的Activity被启动完成后回调该方法。 API: 而上文出现的问题是这样的: ①静态的view不需要onActivityCreated ②保存view的状态的时候需要用onActivityCreated ③访问父activity的view层的时候需要在onActivityCreated 方法里面做 即如果view是静态的,那么没有必要在onActivityCreated 方法去调用,大多数的自定义的view,初始化时都需要一个context,而activity是context的子类,所以在onCreateView方法的时候非静态的view初始化调用可能出现异常,所以对于非静态的view,最好在onActivityCreated方法调用 参考了以下两篇博客:http://blog.csdn.net/u014449046/article/details/48572905http://blog.csdn.net/lxl403853563/article/details/49800231 本文转自 一点点征服 博客园博客,原文链接:http://www.cnblogs.com/ldq2016/p/5591988.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

iOS开发之runtime精准获取电池电量

方法一:通过苹果官方文档里面UIDevice public API来获取,代码如下: [UIDevice currentDevice].batteryMonitoringEnabled = YES; [[NSNotificationCenter defaultCenter] addObserverForName:UIDeviceBatteryLevelDidChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notification) { // Level has changed NSLog(@"Battery Level Change"); NSLog(@"电池电量:%.2f", [UIDevice currentDevice].batteryLevel); }];@property(nonatomic,readonly) float batteryLevel NS_AVAILABLE_IOS(3_0); // 0 .. 1.0. -1.0 if UIDeviceBatteryStateUnknown它返回的是0.00-1.00之间的浮点值。 但是经过测试发现,在iOS7 上 它是以0.05为单位的,但是在iOS9下测试,它是以0.01为单位的,虽然也是0.01为单位,但是测试多次也会出现偏差1%左右。也就是说, 这个办法是存在缺陷的, 最起码, 它不精确。 方法二:找到Mac下IOKit.framework,将IOKit.framework里面的IOPowerSources.h和IOPSKeys.h拷贝到你的iOS项目中。另外, 还需要把IOKit也导入到你的工程中去,此方法也会出现偏差,不精确。DEMO 地址:https://github.com/colin1994/batteryLevelTest.git /** *Calculatingtheremainingenergy * *@returnCurrentbatterylevel */-(double)getCurrentBatteryLevel { //ReturnsablobofPowerSourceinformationinanopaqueCFTypeRef.CFTypeRefblob=IOPSCopyPowerSourcesInfo(); //ReturnsaCFArrayofPowerSourcehandles,eachoftypeCFTypeRef.CFArrayRefsources=IOPSCopyPowerSourcesList(blob); CFDictionaryRefpSource=NULL; constvoid*psValue; //Returnsthenumberofvaluescurrentlyinanarray.intnumOfSources=CFArrayGetCount(sources); //ErrorinCFArrayGetCountif(numOfSources==0) { NSLog(@"ErrorinCFArrayGetCount"); return-1.0f; } //Calculatingtheremainingenergyfor(inti=0;i<numOfSources;i++) { //ReturnsaCFDictionarywithreadableinformationaboutthespecificpowersource. pSource=IOPSGetPowerSourceDescription(blob,CFArrayGetValueAtIndex(sources,i)); if(!pSource) { NSLog(@"ErrorinIOPSGetPowerSourceDescription"); return-1.0f; } psValue=(CFStringRef)CFDictionaryGetValue(pSource,CFSTR(kIOPSNameKey)); intcurCapacity=0; intmaxCapacity=0; doublepercent; psValue=CFDictionaryGetValue(pSource,CFSTR(kIOPSCurrentCapacityKey)); CFNumberGetValue((CFNumberRef)psValue,kCFNumberSInt32Type,&curCapacity); psValue=CFDictionaryGetValue(pSource,CFSTR(kIOPSMaxCapacityKey)); CFNumberGetValue((CFNumberRef)psValue,kCFNumberSInt32Type,&maxCapacity); percent=((double)curCapacity/(double)maxCapacity*100.0f); returnpercent; } return-1.0f; } 方法三:通过runtime 获取StatusBar上电池电量控件类私有变量的值,此方法可精准获取iOS6以上电池电量 MRC: -(int)getCurrentBatteryLevel {if([UIApplicationsharedApplication].applicationState==UIApplicationStateActive||[UIApplicationsharedApplication].applicationState==UIApplicationStateInactive){void*result=nil; object_getInstanceVariable([UIApplicationsharedApplication],"_statusBar",&result);idstatus=result;for(idaviewin[statussubviews]){for(idbviewin[aviewsubviews]){intbatteryLevel=0;if([NSStringFromClass([bviewclass])caseInsensitiveCompare:@"UIStatusBarBatteryItemView"]==NSOrderedSame&&[[[UIDevicecurrentDevice]systemVersion]floatValue]>=6.0) { object_getInstanceVariable(bview,"_capacity",&result); batteryLevel=(int)result;NSLog(@"电池电量:%d",batteryLevel);if(batteryLevel>0&&batteryLevel<=100){returnbatteryLevel; }else{return0; } } } }return0; } ARC: -(int)getCurrentBatteryLevel {UIApplication*app=[UIApplicationsharedApplication];if(app.applicationState==UIApplicationStateActive||app.applicationState==UIApplicationStateInactive){ Ivarivar=class_getInstanceVariable([appclass],"_statusBar");idstatus=object_getIvar(app,ivar);for(idaviewin[statussubviews]){intbatteryLevel=0;for(idbviewin[aviewsubviews]){if([NSStringFromClass([bviewclass])caseInsensitiveCompare:@"UIStatusBarBatteryItemView"]==NSOrderedSame&&[[[UIDevicecurrentDevice]systemVersion]floatValue]>=6.0) { Ivarivar=class_getInstanceVariable([bviewclass],"_capacity");if(ivar) { batteryLevel=((int(*)(id,Ivar))object_getIvar)(bview,ivar);//这种方式也可以 /*ptrdiff_toffset=ivar_getOffset(ivar); unsignedchar*stuffBytes=(unsignedchar*)(__bridgevoid*)bview; batteryLevel=*((int*)(stuffBytes+offset));*/ NSLog(@"电池电量:%d",batteryLevel);if(batteryLevel>0&&batteryLevel<=100){returnbatteryLevel; }else{return0; } } } } } }return0; } 本文转自 卓行天下 51CTO博客,原文链接:http://blog.51cto.com/9951038/1831743,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册