2016-11-11 6 views
0

こんにちは私はservice.the問題の中に融合locationapiを使用してサーバーにユーザーの場所を送信するアプリをやっている私はスケジュール方法を知らないですそれは6秒ごとに実行させるようにしています。私はアンドロイドへの初心者です。誰でも助けてください。事前にお礼します。androidのサービスを使用して6秒ごとに位置の更新を取得する方法

+0

あなたはAlarmManagerまたはjobschedulerのを使用することができます - 詳細はを参照してください。https://developer.android.com/topic/performance/scheduling.htmlをチュートリアルを探して、2つのいずれかを使用して実装します。あなたが何か問題に直面した場合に実装した後、ここに投稿してください。 –

答えて

0

foregroundServiceを作成することでこれを解決できます。これは、あなたのサービスが低メモリで殺されるという問題を解決するかもしれません。フォアグラウンドサービス

は、ユーザーが積極的に認識しており、メモリ上の低殺すためにシステムの候補 ないサービスです。私はまた、作成したhttps://stackoverflow.com/a/8600896/5183341


Android - implementing startForeground for a service?また

は、場所の変更は、この答えをチェックアウト時に通知する:フォアグラウンド・サービスの良い例についてはSource

は、このスレッドを読んであなたがしようとしているサービスと似たようなサービスを提供しています。 (API19のLG2と同様)。私は、サービスを再起動するアラームマネージャーを使用するような、さまざまなソロションをたくさん試しました。すべてのデバイスで堅実に機能していたのは、foregroundServiceを使用している場合のみでした。

1

私はrxJavaライブラリを使用することをお勧め - それは非常に便利です:

Subscription repeatingTask = 
Observable.interval(6, Timeunit.SECONDS) 
// receive notification on background thead 
.observeOn(Schedulers.computation()) 
.map(t -> { 
    // do your work; 
return result; 
} 
.map(result -> { 
sendResult(); 
return result 
}) 
// notify UI 
.observeOn(AndroidSchedulers.mainThread) 
.subscribe(r -> { 
// update UI 
}); 

// unsubscribe when polling is no longer needed: 
if (subscription != null && !subscription.isUnsubscribed()){ 
    subscription.unsubscribe(); 
    subscription = null; 
} 
関連する問題