2017-07-11 1 views
2

Xamarinフォームでは、どのページが現在ナビゲーションスタックの最上部にあるかにかかわらず、連続して実行されるコードはどこに書くのですか?Xamarin - ページに関係なく実行されるコード

Plugin.Geolocatorナゲットパッケージを使用して、特定の場所にいるかどうかを確認するために、10秒ごとに自分の場所を確認する必要のあるアプリを構築しています。このコードは、アプリで現在表示しているページに関係なく、常に実行する必要があります。

Xaml.csページのコードビハインド内でこれを行うためのコードはすでに作成していますが、このコードを作成して常に実行し、10秒ごとに定数チェックを実行する場所はどこですか?

+0

回答が助けになった場合は、回答/ upvotingとしてマークしてください。 –

+0

これを行う方法が見つかりましたか?はいの場合は共有していただけますか? – user3841581

答えて

0

私はXamarinが フォームでの経験を持っていないしかし、Androidの中で、あなたは、2つのオプションがあります。唯一のアプリケーションが開かれたときにスレッドを使用することができます仕事と C#System.Threadingまたはあなたはそれが背景にあるようにしたい場合になる場合 をアプリは閉じています。私は

スレッドアプリの中に内部で動作すると思いますがサービスを使用する必要がありますが、Xamarinには、同じグローバルな考え方が、実装の異なる方法でなければなりません

サービスがスレッドを使用する開かれたが、中のオペレーティングシステムでの作業保管アプリが閉じている間にバックグラウンドが消えますが、バッテリーがなくなるので場所を10分ごとに注意する必要があります

2

この種の機能を実行するには、バックグラウンドタスクを使用できます。これらはXamarinフォームに抽象化されていないため、プラットフォーム固有の実装が必要です。簡単な概要について

チェックこれを: https://xamarinhelp.com/xamarin-background-tasks/

0

eassiest sollutionは限りそれは外のクラスからアクセス可能だとどこでもあなたのプロジェクト内の静的メソッドを作成し、自分の中でapp.csに一度メソッドを実行することになりますコンストラクタ。このメソッドは、次のようになります。

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

数回実行すると、StackOverflowExceptionが発生することがあります。私は確信していません。

関連する問題