3

私は仕事を得ました。

6:00 register locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                0, 0, locationListener);<br>
19:00 unregister locationManager.removeUpdates(locationListener);

まず、 でサービスを利用したいAlarmManager。しかし、アクティビティからサービスへlocationManagerと送信することはできません。locationListener

最後に、常に実行AsyncTaskするループを作成するために使用しますdoInbackground。時刻が 6:00 または 19:00 の場合、locationManager を登録または登録解除します。

 protected Object doInBackground(Object... params) {
    Calendar calendar = Calendar.getInstance();
    while(flag) {
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.HOUR_OF_DAY, 19);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);

        long now = System.currentTimeMillis();
        if(calendar.getTime().getTime() - now < 1000) {
            publishProgress(new Message(Message.REMOVE_LOCATION_MANAGER));
        }

        calendar.set(Calendar.HOUR_OF_DAY, 6);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        now = System.currentTimeMillis();
        if(calendar.getTime().getTime() - now < 1000) {
            publishProgress(new Message(Message.REGISTER_LOCATION_MANAGER));
        }
    }
    return null;
}
 protected void onProgressUpdate(Object... values) {
    super.onProgressUpdate(values);

    Message msg = (Message)values[0];
    if(msg.type == Message.REMOVE_LOCATION_MANAGER) {
        lm.removeUpdates(ll);
        Toast.makeText(context, "remove locationManager", Toast.LENGTH_SHORT).show();
    }

    if(msg.type == Message.REGISTER_LOCATION_MANAGER) {
        lm.removeUpdates(ll);
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                0, 0, ll);
        Toast.makeText(context, "register locationManager", Toast.LENGTH_SHORT).show();
    }
}

誰でもより良いスケジュール方法を持っています.thxを事前に。

4

1 に答える 1

-1

あなたの質問に直接答えても意味がありません。Android デバイスは、午前 6 時から午後 19 時まで GPS を実行している間、1 回のバッテリー充電で生き残ることはできないため、アプリケーションを再考する必要があります。

基本的に、GPS 位置情報の更新は、本当に必要な場合にのみ要求する必要があります。Android Guru Reto Meyer による位置情報の更新に関する素晴らしい記事を次に示します

于 2012-04-25T07:51:49.033 に答える