2017-07-11 73 views
2

在Xamarin Forms中,我在哪裏編寫代碼,無論哪個頁面當前位於導航堆棧的頂部,都將連續運行代碼?Xamarin - 無論頁面運行的代碼

我正在構建一個應用程序,該應用程序必須每隔10秒檢查一次您的位置,以使用Plugin.Geolocator nuget包查看您是否位於特定位置。無論您目前在應用中查看哪個網頁,此代碼都必須始終運行。

我已經在Xaml.cs頁面代碼隱藏內部編寫了代碼,但是我在哪裏編寫此代碼以便它始終運行並每10秒鐘執行一次常量檢查?

+0

如果答案對您有幫助,請考慮標記爲answer/upvoting。 –

+0

你有沒有找到一種方法來做到這一點?如果是,你可以分享嗎? – user3841581

回答

0

我沒有經驗與Xamarin窗體 但是在Android中,你有兩個選擇: 如果只是將工作當應用程序打開時,你可以使用線程和C#的System.Threading 或者,如果你希望它是在後臺而應用程序已關閉。您將需要使用服務,但Xamarin它應該是同一個全局的想法,但不同的實施方式我猜

線程將工作中的應用,同時打開

服務將使用線程,但在操作系統中繼續工作在應用程序關閉時的背景,但您需要注意每10分鐘的位置,因爲它會消耗電池

0

的eassiest sollution將在項目中創建一個靜態方法,任何地方,只要它的外部類訪問,並在您的app.cs執行一次方法構造函數。該方法會有點像這樣:

public static void CheckPosition(){ 
    Task.Delay(10000).ContinueWith(delegate{ 
     // Your code here 
     CheckPosition(); 
    }); 
} 

幾次運行後您可能會遇到StackOverflowException。雖然我不確定。