Coffeeboys / RenewPass

An Android app for renewing your UPass
MIT License
10 stars 2 forks source link

Auto-renewal gets cancelled and doesn't finish if it takes too long #25

Closed TrevRawr closed 8 years ago

TrevRawr commented 8 years ago

On some devices (such as my beloved galaxy gio), if the auto-renewal process takes too long, the android system appears to be killing the process before it has the chance to complete. A potential solution to this is to use a background service to handle the auto-renewal process instead of doing it directly in the broadcast receiver.

TrevRawr commented 8 years ago

Logcat from device when Broadcast Receiver is destroyed:

02-19 01:36:13.519 173-188/system_process W/ActivityManager﹕ Timeout of broadcast BroadcastRecord{41630810 null} - receiver=android.os.BinderProxy@41168390, started 10001ms ago 02-19 01:36:13.529 173-188/system_process W/ActivityManager﹕ Receiver during timeout: ResolveInfo{4161cd20 ca.alexland.renewpass.utils.AlarmReceiver p=0 o=0 m=0x0} 02-19 01:36:13.539 173-188/system_process I/Process﹕ Sending signal. PID: 29658 SIG: 3 02-19 01:36:13.559 173-188/system_process I/Process﹕ Sending signal. PID: 173 SIG: 3 02-19 01:36:13.559 173-178/system_process I/dalvikvm﹕ threadid=3: reacting to signal 3 02-19 01:36:13.599 173-178/system_process I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt' 02-19 01:36:13.599 173-188/system_process I/Process﹕ Sending signal. PID: 285 SIG: 3 02-19 01:36:13.609 173-188/system_process I/Process﹕ Sending signal. PID: 244 SIG: 3 02-19 01:36:13.889 173-176/system_process D/dalvikvm﹕ GC_CONCURRENT freed 1734K, 24% free 10087K/13127K, paused 5ms+17ms 02-19 01:36:14.259 173-188/system_process D/dalvikvm﹕ GC_EXPLICIT freed 780K, 25% free 9958K/13127K, paused 5ms+8ms 02-19 01:36:14.829 173-188/system_process I/Process﹕ Sending signal. PID: 882 SIG: 3 02-19 01:36:14.879 173-188/system_process E/ActivityManager﹕ ANR in ca.alexland.renewpass Reason: Broadcast of Intent { flg=0x14 cmp=ca.alexland.renewpass/.utils.AlarmReceiver (has extras) } Load: 7.64 / 7.45 / 7.19 CPU usage from 8546ms to 966ms ago: 77% 882/com.alarmclock.xtreme.free: 76% user + 1.3% kernel / faults: 1 minor 8.6% 29658/ca.alexland.renewpass: 7.2% user + 1.4% kernel / faults: 1844 minor 2.6% 26/ksmd: 0% user + 2.6% kernel 2.2% 173/system_server: 1.4% user + 0.7% kernel / faults: 49 minor 1.4% 119/adbd: 0.2% user + 1.1% kernel / faults: 389 minor 1% 112/surfaceflinger: 0.6% user + 0.3% kernel 0.9% 67/bma_wq: 0% user + 0.9% kernel 0.5% 63/synaptics_wq: 0% user + 0.5% kernel 0.5% 79/ksmartass_up/0: 0.5% user + 0% kernel 0.2% 244/com.android.systemui: 0.1% user + 0.1% kernel 0% 10/sync_supers: 0% user + 0% kernel 0.1% 357/AR6K Async: 0% user + 0.1% kernel 0.1% 456/ksdioirqd/mmc1: 0% user + 0.1% kernel 0% 5611/logcat: 0% user + 0% kernel 100% TOTAL: 89% user + 9.8% kernel + 0.1% softirq CPU usage from 719ms to 1260ms later: 79% 882/com.alarmclock.xtreme.free: 77% user + 1.8% kernel 77% 4014/WebViewCoreThre: 75% user + 1.8% kernel 1.8% 882/ock.xtreme.free: 1.8% user + 0% kernel 3.4% 26/ksmd: 0% user + 3.4% kernel 5.5% 173/system_server: 1.8% user + 3.7% kernel 3.7% 188/ActivityManager: 0% user + 3.7% kernel 1.8% 205/er$SensorThread: 1.8% user + 0% kernel 2.8% 29658/ca.alexland.renewpass: 2.8% user + 0% kernel / faults: 28 minor 1.4% 30542/AsyncTask #1: 1.4% user + 0% kernel 1.8% 67/bma_wq: 0% user + 1.8% kernel 0.8% 79/ksmartass_up/0: 0.8% user + 0% kernel 1.1% 456/ksdioirqd/mmc1: 0% user + 1.1% kernel 100% TOTAL: 85% user + 14% kernel 02-19 01:36:14.879 173-188/system_process W/ActivityManager﹕ Killing ProcessRecord{410a2c90 29658:ca.alexland.renewpass/10055}: background ANR 02-19 01:36:14.999 173-184/system_process I/WindowManager﹕ WIN DEATH: Window{4150c8e0 ca.alexland.renewpass/ca.alexland.renewpass.SettingsActivity paused=false} 02-19 01:36:14.999 173-1273/system_process I/ActivityManager﹕ Process ca.alexland.renewpass (pid 29658) has died. 02-19 01:37:07.949 173-198/system_process I/power﹕ *\ set_screen_state 0 02-19 01:37:07.949 173-199/system_process E/SensorHAL﹕ +__poll_activate: handle=0 enabled=0 02-19 01:37:07.949 173-199/system_process E/SensorHAL﹕ > Accelerometer Write /sys/class/input/input3/enable 0 02-19 01:37:07.989 173-224/system_process W/NetworkManagementSocketTagger﹕ setKernelCountSet(10024, 0) failed with errno -2 02-19 01:37:12.959 173-188/system_process W/ProcessStats﹕ Skipping unknown process pid 31256 02-19 01:37:12.959 173-188/system_process W/ProcessStats﹕ Skipping unknown process pid 31258 02-19 01:37:13.009 173-202/system_process V/TransportControlView﹕ Create TCV com.android.internal.widget.TransportControlView@411a7bf8