在我們的應用程序的初始加載中,我們做了數百個worklight invokeProcedure調用,這需要花費20分鐘到一個小時才能完全完成。 (每一個都少於10秒,所以工作正常。)但是,如果設備鎖定屏幕出現,它會暫停應用程序,如果我沒有足夠快地響應設備鎖定屏幕,工作燈invokeProcedure會中斷並停止我們的初始化加載過程。MobileFirst應用在設備被鎖定時運行?
有沒有辦法在Windows,iOS和Android上配置應用程序,以便在顯示鎖定屏幕時繼續?
在我們的應用程序的初始加載中,我們做了數百個worklight invokeProcedure調用,這需要花費20分鐘到一個小時才能完全完成。 (每一個都少於10秒,所以工作正常。)但是,如果設備鎖定屏幕出現,它會暫停應用程序,如果我沒有足夠快地響應設備鎖定屏幕,工作燈invokeProcedure會中斷並停止我們的初始化加載過程。MobileFirst應用在設備被鎖定時運行?
有沒有辦法在Windows,iOS和Android上配置應用程序,以便在顯示鎖定屏幕時繼續?
這不是一個內置的功能AFAIK。
對於iOS,您需要啓用「後臺抓取」模式: https://www.ibm.com/developerworks/community/blogs/worklight/entry/ios_background_fetch?lang=en
對於Android的你可能需要用科爾多瓦插件來做到這一點:IBM Worklight - How to use Worklight in a background process
至於視窗...沒有想法...
你可能想要看看防止發生屏幕鎖定和Idan Adar建議的後臺處理的組合,以提供更優雅和可控的用戶體驗。
對於iOS,在您的處理中將idelTimerDisabled屬性設置在正確的位置可以防止屏幕鎖定,並且如果發生其他外部設備操作,則可以優雅地完成並保存其餘過程調用的進程狀態,恢復他們當應用程序再次變得活躍時。
[UIApplication sharedApplication].idleTimerDisabled = YES;
其他平臺應該支持類似的方法。
我們能夠找到一種方法來禁用Windows中的鎖定屏幕,並將繼續適用於Android和iOS的這種方法。後臺抓取設置出乎意料地不適用於我們iOS上的應用程序在屏幕鎖定時繼續暫停。 –
數百個invoke過程調用?難道你不能嘗試儘可能多地鏈接適配器調用(在服務器中) –
不,我們有意將它們組合成更小的片段,因此每一個都比工作燈和後端服務器之間的套接字超時短。問題是應用程序暫停,並導致invokeProcedure失敗。 –
什麼版本的MobileFirst? –