1

I am using Android Studio to debug push notifications on my app (attached to real device). I've put a breakpoint to push handler, and I start debugging. However, 30-40 seconds in, my app is always killed by the ActivityManager due to ANR. The app is obviously not responding, because I'm debugging it. On the middle of my debugging session, everything is gone, and I need to start over (and I have 30 seconds or so to debug the next time, too). It's extremely inconvenient.

I've extended ParsePushBroadcastReceiver and handling the pushes in onReceive method.

Here is the Logcat output:

07-01 12:00:54.586    2280-2321/system_process E/ActivityManager﹕ ANR in com.ulouder.ulouder
    PID: 1270
    Reason: Broadcast of Intent { act=com.parse.push.intent.RECEIVE flg=0x10 pkg=com.ulouder.ulouder cmp=com.ulouder.ulouder/com.ulouder.PushHandler (has extras) }
    Load: 0.6 / 0.66 / 0.61
    CPU usage from 45803ms to 0ms ago:
    15% 2402/com.android.systemui: 12% user + 2.9% kernel / faults: 5 minor
    14% 1894/surfaceflinger: 5.3% user + 9.2% kernel
    0.8% 2280/system_server: 0.3% user + 0.4% kernel / faults: 97 minor
    0.6% 1909/adbd: 0.1% user + 0.5% kernel
    0.4% 28003/kworker/u:1: 0% user + 0.4% kernel
    0.3% 309/kworker/0:0: 0% user + 0.3% kernel
    0.4% 1628/kworker/0:1: 0% user + 0.4% kernel
    0.3% 1066/kworker/u:2: 0% user + 0.3% kernel
    0.1% 748/s3c-fb-vsync: 0% user + 0.1% kernel
    0.1% 1270/com.ulouder.ulouder: 0.1% user + 0% kernel / faults: 5 minor
    0.1% 1502/kworker/u:3: 0% user + 0.1% kernel
    0.1% 2528/dhd_dpc: 0% user + 0.1% kernel
    0% 968/com.google.android.googlequicksearchbox:search: 0% user + 0% kernel / faults: 18 minor
    0% 2660/wpa_supplicant: 0% user + 0% kernel
    0% 29958/com.facebook.katana: 0% user + 0% kernel / faults: 58 minor
    0% 1895/zygote: 0% user + 0% kernel / faults: 85 minor
    0% 2545/com.google.android.gms.persistent: 0% user + 0% kernel
    0% 7/watchdog/0: 0% user + 0% kernel
    0% 433/kworker/2:1: 0% user + 0% kernel
    0% 1111/mmcqd/0: 0% user + 0% kernel
    0% 1342/com.google.android.apps.magazines: 0% user + 0% kernel / faults: 19 minor
    0% 2527/dhd_watchdog_th: 0% user + 0% kernel
    0% 2563/com.android.phone: 0% user + 0% kernel / faults: 1 minor
    0% 2872/com.google.android.gms: 0% user + 0% kernel
    9.3% TOTAL: 5.3% user + 4% kernel + 0% iowait + 0% softirq
    CPU usage from 3199ms to 3716ms later:
    80% 1733/app_process: 65% user + 15% kernel / faults: 8231 minor
    75% 1733/app_process: 61% user + 13% kernel
    +0% 1734/ReferenceQueueD: 0% user + 0% kernel
    +0% 1735/FinalizerDaemon: 0% user + 0% kernel
    +0% 1736/FinalizerWatchd: 0% user + 0% kernel
    +0% 1737/GC: 0% user + 0% kernel
    +0% 1738/Signal Catcher: 0% user + 0% kernel
    +0% 1739/JDWP: 0% user + 0% kernel
    +0% 1740/Compiler: 0% user + 0% kernel
    +0% 1741/Binder_1: 0% user + 0% kernel
    +0% 1742/Binder_2: 0% user + 0% kernel
    29% 2280/system_server: 18% user + 11% kernel / faults: 206 minor
    20% 2329/PackageManager: 18% user + 1.8% kernel
    7.4% 2321/ActivityManager: 0% user + 7.4% kernel
    1.8% 2624/Binder_9: 0% user + 1.8% kernel
    5.5% 831/com.android.defcontainer: 1.1% user + 4.4% kernel / faults: 223 minor
    3.3% 843/Binder_1: 0% user + 3.3% kernel
    +0% 1743/IntentService[D: 0% user + 0% kernel
    1.1% 1284/logcat: 0% user + 1.1% kernel
    1.1% 1628/kworker/0:1: 0% user + 1.1% kernel
    1.8% 1909/adbd: 0% user + 1.8% kernel
    1.8% 1909/adbd: 0% user + 1.8% kernel
    37% TOTAL: 28% user + 8.4% kernel

How can I prevent this behavior?

Can Poyrazoğlu
  • 33,241
  • 48
  • 191
  • 389
  • Logcat and some code please ? – DevUt Jul 01 '15 at 09:17
  • @user4847410 see my updated question. – Can Poyrazoğlu Jul 01 '15 at 09:24
  • IMHO: log everything and debug from that; if you have any complicated logic inside BroadcastReceiver then move it e.g. to Service, you will be able to debug there without ANR – jmuet Jul 01 '15 at 09:38
  • @jmuet I could, but it's a bit overkill and inconvenient. I'm looking for a way (like a simple switch/flag in debugger or within Android) that would enable me to debug this way (without killing), if possible. – Can Poyrazoğlu Jul 01 '15 at 09:41
  • maybe this would help http://stackoverflow.com/questions/7124711/prevent-applicationnotresponding-during-debugging – jmuet Jul 01 '15 at 11:03

0 Answers0