setOrientation 造成前后臺(tái)通知回調(diào)兩次

    if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {
        SEL selector = NSSelectorFromString(@"setOrientation:");
        NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];
        [invocation setSelector:selector];
        [invocation setTarget:[UIDevice currentDevice]];
        int val = orientation;
        [invocation setArgument:&val atIndex:2];
        [invocation invoke];
    }

這段代碼可以用來(lái)在用戶已經(jīng)鎖定屏幕旋轉(zhuǎn)的情況下, 進(jìn)行強(qiáng)制旋轉(zhuǎn)屏幕, 雖然這樣用并不明智, 但是為了滿足需求, 確實(shí)需要使用這樣的方法, 在近期開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)了這樣的問(wèn)題, 在APP從后臺(tái)切入前臺(tái)后的這個(gè)方法中:

  - (void)applicationDidBecomeActive:(UIApplication *)application

進(jìn)行強(qiáng)制屏幕旋轉(zhuǎn)會(huì)造成

- (void)applicationDidBecomeActive:(UIApplication *)application;
- (void)applicationWillResignActive:(UIApplication *)application;
- (void)applicationDidEnterBackground:(UIApplication *)application;
- (void)applicationWillEnterForeground:(UIApplication *)application;

會(huì)造成這幾個(gè)方法再執(zhí)行一遍;

最終的現(xiàn)象就是前后臺(tái)通知回調(diào)走了兩次, 從而造成各種莫名其妙的bug, 所以建議這種調(diào)用蘋果私有API的情況盡量不要出現(xiàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,058評(píng)論 25 709
  • 品牌:蘆丹氏香調(diào):木質(zhì)東方調(diào)前調(diào):牛奶 小麥中調(diào):椰子 甘草 不凋花后調(diào):桂花 杏 辛香料 檀香木 木質(zhì)香 琥珀以...
    削削削削小蘿卜閱讀 803評(píng)論 0 1
  • 家在粵語(yǔ)里面就是“屋企”,所以說(shuō)“屋企”就是家的意思?;浾Z(yǔ)其實(shí)是一種很古老的語(yǔ)言,曾經(jīng)人說(shuō)過(guò)被喻為語(yǔ)言里的“活化...
    一絲涼意閱讀 3,339評(píng)論 1 0
  • 【1.7原文】 子夏曰:“賢賢易色,事父母能竭其力,事君能致其身,與朋友交言而有信。雖曰未學(xué),吾必謂之學(xué)...
    jnvivian閱讀 473評(píng)論 0 0

友情鏈接更多精彩內(nèi)容