第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

鎖定解鎖事件iphone

鎖定解鎖事件iphone

LEATH 2019-07-30 16:03:39
鎖定解鎖事件iphone如何在iPhone上檢測(cè)鎖定/解鎖事件?假設(shè)它只能用于越獄設(shè)備,你能指出我正確的API嗎?通過鎖定事件,我的意思是顯示或隱藏鎖定屏幕(可能需要密碼才能解鎖)。
查看完整描述

3 回答

?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊

回答:

應(yīng)用程序?qū)⒃诟鞣N情況下調(diào)用活動(dòng)調(diào)用...并且從我的所有測(cè)試中,即使您的應(yīng)用程序在后臺(tái)運(yùn)行時(shí)保持清醒狀態(tài),也無法確定屏幕是否已鎖定(CPU速度未報(bào)告,總線速度保持不變,mach_time denom / numer不會(huì)改變)......

但是,當(dāng)設(shè)備鎖定時(shí),Apple似乎關(guān)閉了加速計(jì)... 在屏幕鎖定時(shí)啟用iPhone加速計(jì) (在iPhone 4上測(cè)試iOS4.2有此行為)

從而...

在您的應(yīng)用程序委托中:

- (void)applicationWillResignActive:(UIApplication *)application{
    NSLog(@"STATUS - Application will Resign Active");
    // Start checking the accelerometer (while we are in the background)
    [[UIAccelerometer sharedAccelerometer] setDelegate:self];
    [[UIAccelerometer sharedAccelerometer] setUpdateInterval:1]; // Ping every second
    _notActiveTimer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(deviceDidLock) userInfo:nil repeats:NO]; // 2 seconds for wiggle}//Deprecated in iOS5- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
    NSLog(@"STATUS - Update from accelerometer");
    [_notActiveTimer invalidate];
    _notActiveTimer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(deviceDidLock) userInfo:nil repeats:NO];}- (void)deviceDidLock{
    NSLog(@"STATUS - Device locked!");
    [[UIAccelerometer sharedAccelerometer] setDelegate:nil];
    _notActiveTimer = nil;}- (void)applicationDidBecomeActive:(UIApplication *)application{
    NSLog(@"STATUS - Application did become active");
    [[UIAccelerometer sharedAccelerometer] setDelegate:nil];
    [_notActiveTimer invalidate];
    _notActiveTimer = nil;}

我知道......這是一種黑客攻擊,但到目前為止,它對(duì)我來說就像是一種魅力。如果您發(fā)現(xiàn)任何阻止其工作的問題,請(qǐng)更新。


查看完整回答
反對(duì) 回復(fù) 2019-07-30
?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

有一種更漂亮的方式可以分辨任務(wù)切換和屏幕鎖定發(fā)起的applicationWillResignActive:回調(diào),甚至不涉及無記錄功能,如加速度計(jì)狀態(tài)。

當(dāng)應(yīng)用程序移動(dòng)到后臺(tái)時(shí),應(yīng)用程序委托首先發(fā)送一個(gè)applicationWillResignActive:,然后發(fā)送一個(gè)applicationDidEnterBackground:。當(dāng)通過按下“鎖定”按鈕或來電來中斷應(yīng)用程序時(shí),不會(huì)調(diào)用后一種方法。我們可以使用此信息來區(qū)分這兩種情況。

假設(shè)您希望screenLockActivated在屏幕被鎖定時(shí)在方法中回調(diào)。這是魔術(shù):

- (void)applicationWillResignActive:(UIApplication*)aApplication{
    [self performSelector:@selector(screenLockActivated)
               withObject:nil
               afterDelay:0];}- (void)applicationDidEnterBackground:(UIApplication*)aApplication{
    [NSObject cancelPreviousPerformRequestsWithTarget:self];}- (void)screenLockActivated{
    NSLog(@"yaay");}

說明:

默認(rèn)情況下,我們假設(shè)每次調(diào)用applicationWillResignActive:都是因?yàn)榛顒?dòng) - >非活動(dòng)狀態(tài)轉(zhuǎn)換(如鎖定屏幕時(shí)),但我們慷慨地讓系統(tǒng)通過延遲在超時(shí)(在這種情況下,單個(gè)runloop循環(huán))中證明相反打電話給screenLockActivated。如果屏幕被鎖定,系統(tǒng)將完成當(dāng)前的runloop循環(huán),而不會(huì)觸及任何其他委托方法。但是,如果這是一個(gè)active-> background狀態(tài)轉(zhuǎn)換,它也會(huì)applicationDidEnterBackground:在循環(huán)結(jié)束之前調(diào)用,這允許我們從那里簡(jiǎn)單地取消先前調(diào)度的請(qǐng)求,從而防止它在不應(yīng)該被調(diào)用時(shí)被調(diào)用。

請(qǐng)享用!


查看完整回答
反對(duì) 回復(fù) 2019-07-30
  • 3 回答
  • 0 關(guān)注
  • 760 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)