Quiting is freezing on Android

Hi all, firstly I am new to unity. I am developing a game with Unity 4.6.1 and am encountering a problem. When I call Application.Quit() to exit the game on Android (Android 5.0 and 5.0.1), Quiting takes long time (arond 20s). Sometimes, it results in “android not responding error”. I search the similar problem online. But the problems are all about a bug which happened in earlier unity version. And it is claimed to be fixed after 4.3. I am not sure if this is a regression or my problem.

These are the logs I got from logcat. quit.txt[37326-quit2.txt|37326]

Any suggestions are welcome.

I/Unity   ( 8490): Quiting

I/Unity   ( 8490):  

I/Unity   ( 8490): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)

I/Unity   ( 8490): 

W/ActivityManager(  556): Activity pause timeout for ActivityRecord{687bb4b u0 com.cobee.agiledot/com.unity3d.player.UnityPlayerNativeActivity t1902 f}

I/ActivityManager(  556): Killing 8457:com.google.android.apps.plus/u0a51 (adj 15): empty #17

W/ActivityManager(  556): getTasks: caller 10131 does not hold GET_TASKS; limiting output

W/ActivityManager(  556): getTasks: caller 10131 does not hold GET_TASKS; limiting output

W/ActivityManager(  556): getTasks: caller 10131 does not hold GET_TASKS; limiting output

I/ActivityManager(  556): Waited long enough for: ServiceRecord{1bb1e3d3 u0 com.amazon.mShop.android/com.amazon.venezia.notification.NotificationService}

W/ActivityManager(  556): Launch timeout has expired, giving up wake lock!

W/ActivityManager(  556): getTasks: caller 10131 does not hold GET_TASKS; limiting output

W/ActivityManager(  556): getTasks: caller 10131 does not hold GET_TASKS; limiting output

W/ActivityManager(  556): getTasks: caller 10131 does not hold GET_TASKS; limiting output

W/ActivityManager(  556): Activity destroy timeout for ActivityRecord{687bb4b u0 com.cobee.agiledot/com.unity3d.player.UnityPlayerNativeActivity t1902 f}

I/ActivityManager(  556): Process com.cobee.agiledot (pid 8490) has died

W/ActivityManager(  556): Force removing ActivityRecord{31ee26e0 u0 com.cobee.agiledot/com.unity3d.player.UnityPlayerProxyActivity t1902}: app died, no saved state

W/ActivityManager(  556): getTasks: caller 10131 does not hold GET_TASKS; limiting output

I/Unity   (12439): Quiting

I/Unity   (12439):  

I/Unity   (12439): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 49)

I/Unity   (12439): 

W/ActivityManager(  556): Activity pause timeout for ActivityRecord{1d2eef3d u0 com.cobee.agiledot/com.unity3d.player.UnityPlayerNativeActivity t1905 f}

W/ActivityManager(  556): Launch timeout has expired, giving up wake lock!

W/ActivityManager(  556): Activity destroy timeout for ActivityRecord{1d2eef3d u0 com.cobee.agiledot/com.unity3d.player.UnityPlayerNativeActivity t1905 f}

I/ActivityManager(  556): Process com.cobee.agiledot (pid 12439) has died

W/ActivityManager(  556): Force removing ActivityRecord{331d582 u0 com.cobee.agiledot/com.unity3d.player.UnityPlayerProxyActivity t1905}: app died, no saved state

You might wanna look into deleting the Unityplayerproxyactivity from your androidmanifest.