web-dev-qa-db-ja.com

AlarmManagerでアクティブなPendingIntentsのリストを取得します

デバイス内のアクティブなPendingIntentsのリストをデバッグ目的で表示する方法はありますか?

私はAlarmManagerを使い始めており、PendingIntentsが正しく作成および削除されるかどうかを確認したいと思います。

また、他のPendingIntentsが存在するかどうかを確認することもできます。これは、一部のアプリが何らかの「余分な作業」を行っているかどうかを調べる好奇心です。

69
BrainCrash
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
 ...
-------------------------------------------------------------------------------
158
inazaruk

adb Shell dumpsys alarm> dump.txtを使用する方法であり、そのためにルート権限は必要ありません。しかし、上から得たものを理解するのは非常に混乱する可能性があります。そのダンプを完全に理解するには、morphaticの答え here を確認する必要があります。

3