2016-08-13 71 views
0

我正在使用XF PCL製作應用程序。Xamarin.Forms計時器即使沒有顯示,也不會跳過UI邏輯?

我開始懷疑XF的定時器對UI例程不夠好。例如,在iOS本機應用程序中,如果View沒有顯示某些原因(新頁面被按下或某物),則自動停止調度程序。因爲它是用於UI的。

但Xamarin's似乎不是那樣的。 它還在做他的工作。

我希望至少在「Device.BeginInvokeOnMainThread(()=>」時,它的消失將被跳過。

我說得對不對? 我應該把額外的邏輯是什麼? (如停止和重新啓動計時器?) (或聲明變量在它跳過?)

感謝。

+0

我建議您取消訂閱計時器或通過在正在監聽的頁面的代碼隱藏中重寫OnDisappear來停止計時器。 我從來沒有使用計時器,你可以參考我在說哪個課? – BraveHeart

+0

@BraveHeart我也考慮從OnDisappear中添加一些跳過的代碼,並在OnAppearing時恢復。你在問我用的計時器嗎? Device.StartTimer。 –

+0

比方說,我想要製作星星圖像並在我的頁面中每秒顯示一次,我使用計時器。但即使新頁面在導航上被推送並且被隱藏,它仍在連續工作。 –

回答

1

在安卓通常,當你在第一頁那麼你導航到第二頁,ALTH儘管Page1被隱藏,它並沒有被殺死,因此工作線程仍然可以工作(在這種情況下,它就是計時器) 我的建議是覆蓋OnDisappearing方法,停止或被忽略。 如果是我的話,我還會放置一個布爾標誌,並且調用_isPageShown,所以當您覆蓋OnDisappearingOnAppearing時,您只需將_isPageShown的值設置爲false或true即可。然後在定時器的回調中,檢查標誌是否爲真,並據此採取行動。

+0

感謝的人。它有幫助 –

相關問題