我正在嘗試創建一個Palm OS應用程序,每隔X分鐘或幾小時檢查一次網站,並在有數據可用時提供通知。我知道這種事情可以在新的Palm上完成 - 例如,當應用不在最前面時,我的Centro可以下載電子郵件或網站 - 但我不知道該怎麼做。任何人都可以將我指向正確的方向嗎?Palm OS中的「背景」任務
回答
這是可能的,但非常困難。有幾個步驟你必須採取。
首先,這隻適用於Palm OS 5,並且在一些早期的Palm OS 5設備上粗略。最新的設備更好,但不完美。
接下來,您將需要使用AlmSetAlarm爲您的應用程序創建警報。這就是你如何完成「每X分鐘或幾小時」的部分。
當警報觸發時,即使應用程序尚未運行,您的應用程序也會得到一個sysAppLaunchCmdAlarmTriggered啓動代碼。如果你只想做一些簡單而快速的事情,你可以響應啓動代碼來完成,你就完成了。
當你在警報啓動代碼中做了你的東西后,一定要設置下一個警報,以便繼續調用。
重要注意事項:響應此啓動代碼時無法訪問全局變量!根據編譯器的設置,您可能也無法訪問某些C++功能,如虛擬功能(內部使用全局變量)。你可以在Codewarrior中設置一個設置來幫助解決這個問題,但我並不太熟悉它。你應該構建你的代碼,以便它不需要全局變量;例如,您可以使用FtrSet和FtrGet來存儲您可能需要的全局數據位。最後,您將只能訪問68000個機器碼的單個64KB代碼段。沒有全局設置,段間跳轉無法正常工作。
通過將大部分代碼移動到PNOlet,您可以解決很多這些限制,但這是一個完全不同且更復雜的主題。
如果您想做一些更復雜的事情,可能需要一段時間(例如,加載網頁或下載電子郵件),強烈建議您不要在警報啓動代碼中執行此操作。您可以在sysAppLaunchCmdDisplayAlarm啓動代碼中執行一些操作,並向用戶顯示允許它們取消的表單。但這一定會很快令人討厭。
更好的用戶體驗(但更復雜)是成爲後臺應用程序。這有些黑魔法,並沒有得到很好的支持,但它是可能的。基本上有三個步驟成爲一個後臺應用程序:
使用DmDatabaseProtect保護您的應用程序數據庫。這將確保您的應用程序被鎖定,因此無法刪除。
使用MemHandleLock和MemHandleSetOwner(將所有者設置爲0)鎖定您的代碼段。這將確保您的代碼被加載到內存中,並且不會被移動。
註冊一些通知。例如,sysNotifyIdleTimeEvent是一個很棒的通知,用於執行一些週期性的後臺處理。
設置完成後,您可以退出警報啓動代碼,然後等待通知啓動。當您的通知處理程序被調用時,您將完成所有後臺處理。
還要確保如果您分配任何系統對象(內存,句柄,文件句柄等),你如果你希望他們從您的通知處理程序返回後,堅持設置其所有者爲0(系統)。否則系統會清理它們。如果你這樣做,要非常小心,以避免內存和資源泄漏!當主人設置爲0時,他們永遠不會清理乾淨!
要退出背景模式,簡單地做反向:取消註冊通知,解除您的代碼段,並取消保護您的應用程序數據庫。
如果您在後臺做任何網絡操作,確保您設置的套接字非阻塞模式,並與正確處理!否則,您將阻止前臺應用程序並導致問題。
- 1. 背景模式與背景任務
- 2. JMeter中的週期性背景任務
- 3. WP7中的永久背景任務
- 4. 背景rake任務幫助
- 5. 背景任務和XamlRenderingBackgroundTask&RenderTargetBitmap
- 6. Swift/Objective-C背景任務
- 7. 背景上傳任務
- 8. 鏈接背景任務Alamofire
- 9. Palm/Garnet OS圖標格式?
- 10. Symfony的過程 - 背景任務
- 11. 設置任務欄的背景圖像?
- 12. 從Django獲取任務的狀態背景任務
- 13. 背景php任務,cron替代品
- 14. Rails背景/異步任務要求
- 15. 反應原生背景任務
- 16. 無法調試背景任務
- 17. iOS 4.0任務完成背景
- 18. 在Palm OS上創建日曆活動
- 19. 「可編程背景」的能力? (OS X)
- 20. 如何在操作的背景中正確運行Symfony任務?
- 21. Ruby on Rails中的智能背景線程任務?
- 22. 背景線程和ios中的多任務處理?
- 23. NSBasic/Palm 4.4教程
- 24. iPhone OS 4.0.x - 從背景到前景的過渡
- 25. 在較低的CPU優先級的背景下運行任務
- 26. Palm webOS CSS瞄準黑客?
- 27. Sencha touch中的背景服務
- 28. 背景任務是解決這個問題的方法嗎?
- 29. 用於複雜背景的JavaFX進度條任務
- 30. 使用onboot重複後臺任務的背景
您好添,很高興在這裏見到你!我喜歡PocketTunes。榮譽! – prakash 2008-09-11 05:13:40