Почему регистрация на обновления местоположения приводит к обновлению контактов? - PullRequest
5 голосов
/ 30 июня 2011

У меня проблема с тем, где я регистрируюсь для обновления местоположения, используя

 mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_MS, 1, mSingleShotGpsListener);

Я вижу, что база данных контактов обновляется, что, по моему желанию, Z, кажется, занимает некоторое время, а затем следует загрузка действия GC (см. Журнал ниже). Поскольку я показываю некоторые анимации довольно скоро после запуска проверки местоположения, это приводит к неоптимальной производительности. Любая идея, почему это происходит / что я могу сделать, чтобы остановить это?

Я провел тестирование на Nexus S и не вижу в журнале этого поведения / проблем с производительностью / проверок контактов.

Спасибо за любую помощь!

06-30 12:33:18.921: DEBUG/GTalkService(14241): [RosterMgr] roster not modified
06-30 12:33:19.041: DEBUG/GTalkService(14241): [OtrMgr] OTR not modified
06-30 12:33:19.081: DEBUG/ContactMessageStore(1501): createTempContactTable() <<<
06-30 12:33:19.101: DEBUG/dalvikvm(17700): GC_FOR_MALLOC freed 1116 objects / 68784 bytes in 106ms
06-30 12:33:19.201: DEBUG/ContactMessageStore(1501): Begin Establish ContactMap
06-30 12:33:19.431: INFO/Resources(17688): Loaded time zone names for en_US in 1438ms.
06-30 12:33:19.531: INFO/global(17688): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
06-30 12:33:19.541: INFO/Resources(17700): Loaded time zone names for en_US in 1528ms.
06-30 12:33:19.561: INFO/Resources(17700): Loaded time zone names for en_US in 1586ms.
06-30 12:33:19.571: INFO/global(17700): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
06-30 12:33:19.581: INFO/global(17700): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
06-30 12:33:19.901: INFO/global(17700): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
06-30 12:33:20.011: DEBUG/ContactMessageStore(1501): cursor count>881
06-30 12:33:20.161: DEBUG/ContactMessageStore(1501): query people time: 959
06-30 12:33:20.181: DEBUG/ContactMessageStore(1501): End Establish ContactMap
06-30 12:33:20.201: DEBUG/ContactNameCache(1671): Contactname cache Process invalid
06-30 12:33:20.211: DEBUG/ContactNameCache(1671): MEPHOTO QUERY
06-30 12:33:20.291: DEBUG/ContactMessageStore(1501): insert contacts2 cost time >>>85
06-30 12:33:20.291: DEBUG/ContactMessageStore(1501): replaceContactTable() >>>
06-30 12:33:20.291: DEBUG/ContactMessageStore(1501): refreshContactsView() >>>
06-30 12:33:20.291: DEBUG/ContactMessageStore(1501): refreshContactsView() <<<
06-30 12:33:20.321: DEBUG/ContactMessageStore(1501): refreshContactsView time: 25
06-30 12:33:20.321: DEBUG/ContactMessageStore(1501): replaceContactTable() <<<
06-30 12:33:20.321: DEBUG/ContactMessageStore(1501): notify MmsSms
06-30 12:33:20.321: DEBUG/ContactMessageStore(1501): MSG_UPDATE_CONTACTS_TABLE <<
06-30 12:33:20.401: DEBUG/ContactNameCache(1671): NAMECACHE MULTIPLE QUERY
06-30 12:33:20.401: INFO/ContactNameCache(1671): cache invalidate.
06-30 12:33:20.861: DEBUG/dalvikvm(1301): GC_EXPLICIT freed 32831 objects / 1957472 bytes in 433ms
06-30 12:33:22.571: DEBUG/dalvikvm(1671): GC_EXPLICIT freed 5100 objects / 233264 bytes in 160ms
06-30 12:33:23.491: DEBUG/dalvikvm(1506): GC_FOR_MALLOC freed 6046 objects / 287856 bytes in 198ms
06-30 12:33:23.571: DEBUG/dalvikvm(1501): GC_EXPLICIT freed 13021 objects / 575784 bytes in 247ms
06-30 12:33:26.611: DEBUG/dalvikvm(1671): GC_EXPLICIT freed 4605 objects / 211320 bytes in 225ms
06-30 12:33:28.131: DEBUG/dalvikvm(1501): GC_EXPLICIT freed 2110 objects / 82232 bytes in 54ms
06-30 12:33:28.451: DEBUG/ContactNameCache(1671): mCachedPhoto size: 68
06-30 12:33:28.491: DEBUG/ContactNameCache(1671): reqeust terminate> Thread[Thread-328,1,main]
06-30 12:33:28.501: DEBUG/ContactNameCache(1671): updateThreadtableNameField> Thread[Thread-329,1,main]
06-30 12:33:28.981: DEBUG/ContactNameCache(1671): thread has terminated> Thread[Thread-329,1,main]
06-30 12:33:29.651: DEBUG/PowerManagerService(1301): New lightsensor value:160, lcdValue:143
06-30 12:33:29.651: DEBUG/PowerManagerService(1301): lightSensorChangedLocked, buttonValue >= 0, mPowerState = 3
06-30 12:33:30.961: DEBUG/ContactMessageStore(1501): MSG_UPDATE_CONTACTS_TABLE >>
06-30 12:33:30.961: DEBUG/ContactMessageStore(1501): query thread cost time >>>0
06-30 12:33:30.961: DEBUG/ContactMessageStore(1501): createTempContactTable() >>>
06-30 12:33:31.151: DEBUG/ContactMessageStore(1501): createTempContactTable() <<<
06-30 12:33:31.201: DEBUG/ContactMessageStore(1501): Begin Establish ContactMap
06-30 12:33:31.381: DEBUG/ContactMessageStore(1501): cursor count>881
06-30 12:33:31.461: DEBUG/ContactMessageStore(1501): query people time: 255
06-30 12:33:31.591: DEBUG/ContactMessageStore(1501): End Establish ContactMap
06-30 12:33:31.601: DEBUG/ContactNameCache(1671): Contactname cache Process invalid
06-30 12:33:31.601: DEBUG/ContactNameCache(1671): MEPHOTO QUERY
06-30 12:33:31.731: DEBUG/ContactMessageStore(1501): insert contacts2 cost time >>>60
06-30 12:33:31.731: DEBUG/ContactMessageStore(1501): replaceContactTable() >>>
06-30 12:33:31.731: DEBUG/ContactMessageStore(1501): refreshContactsView() >>>
06-30 12:33:31.791: DEBUG/ContactMessageStore(1501): refreshContactsView() <<<
06-30 12:33:31.831: DEBUG/ContactMessageStore(1501): refreshContactsView time: 99
06-30 12:33:31.831: DEBUG/ContactMessageStore(1501): replaceContactTable() <<<
06-30 12:33:31.831: DEBUG/ContactMessageStore(1501): notify MmsSms
06-30 12:33:31.831: DEBUG/ContactMessageStore(1501): MSG_UPDATE_CONTACTS_TABLE <<
06-30 12:33:31.891: DEBUG/ContactNameCache(1671): NAMECACHE MULTIPLE QUERY
06-30 12:33:31.891: INFO/ContactNameCache(1671): cache invalidate.
06-30 12:33:32.431: DEBUG/dalvikvm(1301): GC_EXPLICIT freed 12212 objects / 539888 bytes in 520ms
06-30 12:33:32.731: DEBUG/dalvikvm(30218): GC_EXPLICIT freed 444 objects / 22832 bytes in 271ms

1 Ответ

2 голосов
/ 12 июля 2011

Регистрация для обновления приводит к появлению GPS и сообщению местоположения. Скорее всего, на этом устройстве есть пассивный приемник местоположения, зарегистрированный по какой-то причине, когда при получении обновления из-за того, что вы вызываете выбор местоположения GPS и сообщаете о нем, выполняется некоторая операция с базой данных контактов.

Учитывая то, что вы не видите такого поведения на устройстве Nexus, оно не является частью стандартного Android. Так что это некоторая настройка, которую производитель сделал для устройства, или какое-то другое приложение, установленное на этом устройстве.

Вы можете увидеть, какие приложения зарегистрированы для пассивных обновлений местоположения, с помощью "adb shell dumpsys location".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...