我有一種情況,應用程序啓動後,我必須調用Web服務以將未保存的數據發回服務器,同時繼續訪問應用程序。我應該能夠導航到不同的視圖,執行UI任務。 我可以使用任務在訪問UI時在後臺調用Web服務
Task CallWebService()
{
return Task.Factory.StartNew(() => {
// make your service call.
});
}
CallWebService().ContinueWith(task => {
if(task.isFaulted)
throw new AggregateException(task.Exception.InnerException.Message);
// Runs when the task is finished
InvokeOnMainThread(() => {
// Hide your activity indicator here.
StopActivityIndicator();
});
});
我不知道在哪裏調用InvokeOnMainThread因爲用戶可以在任何觀點。我們如何處理這個問題。
你是什麼意思,你不知道在哪裏打電話給它?就像在什麼文件中,什麼方法,應用程序的哪一部分? – valdetero
我不知道如何處理它。我的邏輯是每2分鐘檢查一次數據庫中是否有任何未保存的內容,如果有,請在後臺調用Web服務而不影響用戶活動。因爲在調用Web服務時用戶可以在任何視圖中。那麼在InvokeOnMainThread()中,我不知道哪個主要的UI線程。 – User382
您可以從後臺線程調用InvokeOnMainThread。你爲什麼關心哪個視圖是活動的?你有什麼問題?當線程完成時你想做什麼 - 停止活動指示器?或者是其他東西? – Jason