2014-02-25 74 views
2

我的應用程序檢查GPS,而我的應用程序不是活動的應用程序,我也在後臺使用AVAudioplayer。如何禁用iPhone'應用程序未激活'閃爍橫幅

它工作正常,並保留在後臺執行任務,但ios7顯示這個紅色的頂部橫幅,當它不是活動的應用程序時,我的應用程序名稱會閃爍。

如何禁用此橫幅,使用其他壓平1行的應用程序令人討厭?

我知道這可以做,因爲我有其他基於GPS的背景應用程序不顯示此閃爍的橫幅。

編輯 - 於是,我們迅速找到了答案,但解決辦法逃避我: 如果我從當程序被激活調用此方法一鍵收聽停止OpenEars pocketsphinxController,當應用程序失去焦點的旗幟消失:

-(void) mystopListening{ 
    NSLog(@"Tried to stop listening"); 
    [pocketsphinxController stopListening]; 
} 

但如果我從我的應用程序委託調用相同的方法(我必須導入我的視圖controller.h文件在我的應用程序delegate.h中並添加 - (void)nystopListening;在我的視圖controller.h中以下執行正確):

- (void)applicationWillResignActive:(UIApplication *)application{ 
    myViewController * vc = [[myViewController alloc]init]; 
    [vc mystopListening]; 
} 

橫幅仍然存在!這有點像ios7已經決定我是一個錄音的罪魁禍首之前,我甚至有機會關閉它。或者,我甚至關掉它? 我該如何有效地做到這一點,並在什麼事件?

編輯 - 所以事實證明,當從應用程序委託調用「mystopListening」時,我並不真正關閉pocketsphinxController。我知道這一點,因爲它從應用程序委託調用時記錄'嘗試停止監聽',但pocketsphinxController沒有響應'pocketsphinxDidStopListening'方法。當我在應用程序處於活動狀態時從按鈕調用「mystopListening」時,PocketsphinxController會調用其'pocketsphinxDidStopListening'方法。

爲什麼pocketsphinxController無法響應從應用程序委託調用時,我必須做錯了嗎?

感謝,卡門

+0

你正在錄音嗎? – sangony

+0

是的,我也使用露餡,對不起,我認爲它沒有關係。 – Carm100

+0

如果您錄製音頻,那可能就是紅色橫幅。停止錄音(背景),它應該消失。 – sangony

回答

1

原來我是不是真的叫從我的應用程序的委託原pockectsphinxcontroller實例。

的解決方法是我做了這個問題:

我的應用程序始終有一個計時器的運作,所以在我的應用程序委託在那裏,我得到當應用程序進入未激活,回來活躍的通知,我只是設置全局所以我的計時器可以知道應用程序的活動狀態然後,我的計時器只使用pockecsphinxcontroller方法停止並開始監聽,並且瞧,橫幅沒有更多,而應用程序不活動。

+0

剛剛看到您的其他評論。你是對的,通過創建一個新的VC,你只需實例化你的班級的第二個副本。您的後續停止方法指向新副本,而不是原來的副本。我曾經總是對此感到困惑!神奇你解決了你自己的問題! +1 – sangony