2011-06-29 11 views
66

Czy istnieje sposób wyświetlenia w celu debugowania listy aktywnych PendingIntent s w urządzeniu?Wyświetl listę aktywnych PendingIntents w aplikacji AlarmManager

Zaczynam pracować z AlarmManager i chciałbym zobaczyć, czy moje PendingIntent s są tworzone i usuwane poprawnie.

Miło byłoby również zobaczyć, jakie inne PendingIntent są tam, podobnie jak ciekawość, aby sprawdzić, czy jakaś aplikacja wykonuje jakąś "dodatkową pracę".

Odpowiedz

145
adb shell dumpsys alarm > dump.txt 

dump.txt:

Current Alarm Manager state: 

    Realtime wakeup (now=1309361618777): 
    RTC_WAKEUP #5: Alarm{4822f618 type 0 com.google.android.gsf} 
    type=0 when=1309882326582 repeatInterval=522747000 count=0 
    operation=PendingIntent{47dd3740: PendingIntentRecord{4822aeb8 com.google.android.gsf broadcastIntent}} 
    ... 
    RTC#5: Alarm{4810f9d8 type 1 com.tmobile.selfhelp} 
    type=1 when=1309445979715 repeatInterval=86400000 count=1 
    operation=PendingIntent{4815a5c8: PendingIntentRecord{4810f960 com.tmobile.selfhelp startService}} 
    RTC#4: Alarm{4810f668 type 1 com.tmobile.selfhelp} 
    type=1 when=1309445959620 repeatInterval=86400000 count=1 
    operation=PendingIntent{480996e8: PendingIntentRecord{480214a0 com.tmobile.selfhelp broadcastIntent}} 
    ... 

    Elapsed realtime wakeup (now=2110632): 
    ELAPSED_WAKEUP #5: Alarm{481c24e0 type 2 com.google.android.apps.maps} 
    type=2 when=2147485512925 repeatInterval=0 count=0 
    operation=PendingIntent{47d1d3a8: PendingIntentRecord{481a2600 com.google.android.apps.maps broadcastIntent}}  
    ... 
    ELAPSED #1: Alarm{4829ce98 type 3 android} 
    type=3 when=2512653 repeatInterval=0 count=0 
    operation=PendingIntent{47eabda8: PendingIntentRecord{47f20250 android broadcastIntent}} 
    ELAPSED #0: Alarm{480f0198 type 3 com.mixzing.basic} 
    type=3 when=2439998 repeatInterval=0 count=0 
    operation=PendingIntent{48100dd8: PendingIntentRecord{480ff5a0 com.mixzing.basic broadcastIntent}} 

    Broadcast ref count: 0 

    Alarm Stats: 
    com.google.android.location 
    3ms running, 1 wakeups 
    1 alarms: act=com.google.android.location.ALARM_WAKEUP flg=0x4 
    com.google.android.gsf 
    274ms running, 4 wakeups 
    1 alarms: flg=0x4 
    1 alarms: act=com.google.android.intent.action.GTALK_RECONNECT flg=0x4 
    2 alarms: act=com.google.android.intent.action.GTALK_HEARTBEAT flg=0x4 
... 
------------------------------------------------------------------------------- 
+1

Okazuje się, że jest jeden. Spróbuj użyć 'alarmu dumpsys'. Zaktualizowałem odpowiedź. – inazaruk

+0

Fajne dzięki. – BrainCrash

+2

Właśnie sprawdziłem i mogę potwierdzić, że nie można tego zrobić na urządzeniu, chyba że masz root "Odmowa uprawnień: nie można zrzucić AlarmManager z pid = 16910, uid = 10120" –

2

adb shell dumpsys alarm> dump.txt jest droga i nie trzeba uprawnień administratora do tego. Ale to, co otrzymujesz z góry, może być bardzo mylące, aby je zrozumieć. Aby zrozumieć ten zrzut, powinieneś sprawdzić odpowiedź morfatycznego: here.