2011-05-26 48 views
3

當我將iPhone插入iTunes並將文件拖入我的應用程序的「文件共享」部分時,屏幕上的應用程序將消失一段時間,然後返回。看起來,目前沒有任何應用程序委託方法被觸發,甚至沒有像「進入後臺,進入前臺」之類的東西。當用戶將文件拖入iTunes文件共享和同步完成時,有沒有辦法獲得通知?

一旦我的應用程序在用戶添加或刪除文件的同步後回來,我想更新屏幕。

也許有通知beeing發送?

回答

4

- (void)applicationWillResignActive:(UIApplication *)application當同步啓動和- (void)applicationDidBecomeActive:(UIApplication *)application同步完成之後被稱爲

+0

自iOS5以來,情況就不是這樣了 – openfrog 2011-11-16 22:57:51

6

此外,<MediaPlayer/MediaPlayer.h>框架的[MPMediaLibary defaultMediaLibrary]可以張貼通知MPMediaLibraryDidChangeNotification,當您的設備與iTunes同步時,您的媒體庫已更新其特別解僱。

你可以讓你的對象中加入遵守本通知:

#import <MediaPlayer/MediaPlayer.h> 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(<#selector#>:) name:MPMediaLibraryDidChangeNotification object:[MPMediaLibrary defaultMediaLibrary]]; 

還要確保使用- (void)beginGeneratingLibraryChangeNotifications

+0

這對iTunes文件共享不起作用。它沒有被觸發。似乎只適用於相機膠捲中的東西,或者可能是視頻/音樂。但不是特定於應用程序的文檔。在iOS5的iPad上進行測試。 – openfrog 2011-11-16 23:07:55

+0

這用於在iOS4中使用iTunes文件共享。從iOS5開始,它似乎被棄用,或者可能被破壞。 – skantner 2011-12-02 19:19:54

+0

添加了正確使用此通知的重要信息。但是,它很可能不適用於iOS 5,因爲同步不會將應用程序置於後臺,從而使通知不再需要。但它仍在文檔中,並且不會爲此通知及其方法編寫廢棄標記 – petershine 2011-12-03 06:37:47

1

applicationWillResignActive開始與iOS 5.0不起作用激活此通知。

您可以在DocInteraction示例應用程序中使用DirectoryWatcher類。

+0

只有在創建新文件時,DirectoryWatcher類纔會在同步或文件傳輸完成時通知其回調。當傳輸完成時有沒有辦法通知(想想一個大文件)? – mdupls 2011-10-21 14:20:35

+0

DirectoryWatcher很棒!不過需要iOS 4。 – openfrog 2011-11-17 00:38:25

+0

我知道什麼時候完成同步的方法是使用計時器來觀察文件的大小;當它停止改變時,我假定同步完成。 – pstoppani 2011-11-18 17:13:32

相關問題