在Xamarin Forms中,我在哪裏編寫代碼,無論哪個頁面當前位於導航堆棧的頂部,都將連續運行代碼?Xamarin - 無論頁面運行的代碼
我正在構建一個應用程序,該應用程序必須每隔10秒檢查一次您的位置,以使用Plugin.Geolocator
nuget包查看您是否位於特定位置。無論您目前在應用中查看哪個網頁,此代碼都必須始終運行。
我已經在Xaml.cs頁面代碼隱藏內部編寫了代碼,但是我在哪裏編寫此代碼以便它始終運行並每10秒鐘執行一次常量檢查?
在Xamarin Forms中,我在哪裏編寫代碼,無論哪個頁面當前位於導航堆棧的頂部,都將連續運行代碼?Xamarin - 無論頁面運行的代碼
我正在構建一個應用程序,該應用程序必須每隔10秒檢查一次您的位置,以使用Plugin.Geolocator
nuget包查看您是否位於特定位置。無論您目前在應用中查看哪個網頁,此代碼都必須始終運行。
我已經在Xaml.cs頁面代碼隱藏內部編寫了代碼,但是我在哪裏編寫此代碼以便它始終運行並每10秒鐘執行一次常量檢查?
我沒有經驗與Xamarin窗體 但是在Android中,你有兩個選擇: 如果只是將工作當應用程序打開時,你可以使用線程和C#的System.Threading 或者,如果你希望它是在後臺而應用程序已關閉。您將需要使用服務,但Xamarin它應該是同一個全局的想法,但不同的實施方式我猜
線程將工作中的應用,同時打開
服務將使用線程,但在操作系統中繼續工作在應用程序關閉時的背景,但您需要注意每10分鐘的位置,因爲它會消耗電池
您可以使用後臺任務來執行此類功能。這些確實需要特定於平臺的實現,因爲它們不是抽象成Xamarin表單。
的eassiest sollution將在項目中創建一個靜態方法,任何地方,只要它的外部類訪問,並在您的app.cs執行一次方法構造函數。該方法會有點像這樣:
public static void CheckPosition(){
Task.Delay(10000).ContinueWith(delegate{
// Your code here
CheckPosition();
});
}
幾次運行後您可能會遇到StackOverflowException。雖然我不確定。
如果答案對您有幫助,請考慮標記爲answer/upvoting。 –
你有沒有找到一種方法來做到這一點?如果是,你可以分享嗎? – user3841581