Tengo una actividad android y un servicio implementado usando aidl. Funciona como un campeón, tengo una configuración de devolución de llamada para pasar algunas notificaciones de subprocesos a la interfaz de usuario, y parece funcionar bien, con la excepción de un montón deGREF aumentando/disminuyendo en el servicio de subprocesos múltiples (helpl) - ¿qué significa?
GREF ha aumentado a 101, 201, 301, 401, 501, etc., y GREF ha disminuido. Hice un poco de búsqueda en línea y descubrí que tiene que ver con Referencias Globales.
08-17 02:31:19.735: DEBUG/dalvikvm(2558): GREF has increased to 301
...
08-17 02:31:25.823: DEBUG/dalvikvm(2558): GREF has increased to 401
...
08-17 02:31:36.772: DEBUG/dalvikvm(2558): GREF has increased to 501
...
08-17 02:31:42.694: DEBUG/dalvikvm(2558): GREF has increased to 601
...
08-17 02:31:48.695: DEBUG/dalvikvm(2558): GREF has increased to 701
...
08-17 02:31:59.883: DEBUG/dalvikvm(2558): GREF has decreased to 599
08-17 02:31:59.912: DEBUG/dalvikvm(2558): GREF has decreased to 499
08-17 02:31:59.912: DEBUG/dalvikvm(2558): GREF has decreased to 399
08-17 02:31:59.912: DEBUG/dalvikvm(2558): GREF has decreased to 299
08-17 02:31:59.912: DEBUG/dalvikvm(2558): GREF has decreased to 199
Hice algunas búsquedas y veo que la mayoría de las observaciones sobre esto son bastante antiguas. Mi preocupación es que estoy implementando mi cliente/servicio correctamente, y quería saber cómo puedo rastrear qué está causando que GREF aumente. Cualquier pensamiento/sugerencia es bienvenida. ¡Gracias!
el flujo del programa básico
Client -> Creates Callback
Client -> Starts Service
Service -> Inits & Starts CountDownTimer
Service.CountDownTimer.onFinish() -> DownloadAndParse()
DownloadAndParse() -> initialize new saxRequest(), new Handler for this request.
Service.Handler->beginBroadcast()
Client.CallbackStub -> updateUI()
Client.CallbackStub -> service.startCountDownTimer()
Esperamos que esto tiene sentido. Publicaba el código aquí, pero hay tantos archivos diferentes. Pensé que trataría de poner el flujo para ver si había algo deslumbrante ... Lo único que puedo ver es quizás volver a usar saxRequest() en lugar de crear una nueva instancia ... Lo intentaré ahora , pero realmente me gustaría saber sobre el impacto de GREF y la recolección de basura.
Muchas gracias. De hecho, estoy a punto de comenzar a escribir un código JNI, por lo que saber esto ayudará. Nunca antes lo había notado ... Es extraño cómo se tardan dos años en ver algo por primera vez. Muchas gracias, respondiste mi pregunta ... – Chrispix