サービスとブロードキャストレシーバーを使用して、バックグラウンドでサーバーに位置情報の更新を提供するアプリを構築します。位置情報のメソッドを実行するタイマー (X 分ごとに実行) を配置します。問題と質問があります。これのリストがあります。
1.デバイスがスタンバイ モードまたはスリープ モードのときにタイマーがスリープ状態になる
2.ユーザーの最後の場所と現在の場所の距離が500m以上の場合、場所を更新する必要があります.
3.スリープモードに移行するためのデバイスの分数または秒数を知りたいですか?
4.デバイスのスリープモードで停止またはスリープするのではなく、実行中のデバイスモードでタイマーが完全に実行されるのはなぜですか?
私のタイマータスク
class TimeDisplayTimerTask extends TimerTask {
@Override
public void run() {
// run on another thread
mHandler.post(new Runnable() {
@Override
public void run() {
location();
notifyUser2();
Log.d("timeeeeeeee22222222", "time22222222");
// display toast
}
});
}
//in oncreate
if (mTimer != null) {
mTimer.cancel();
} else {
// recreate new
mTimer = new Timer();
}
// schedule task
mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 0, NOTIFY_INTERVAL);
タイマーを実行する正しい方法はありますか? はいの場合、デバイスがスタンバイ モードまたはスリープ モードのときにスリープするのはなぜですか?
たくさんのサイトを検索しましたが、見つかりません。前もって感謝します