Android app not responding (ANR)

前端 未结 4 1755
长情又很酷
长情又很酷 2020-12-04 00:48

I have an android app, which listens to a socket from the server and retrieves data in json format and save data in the database. Resource cursor adapter is used to display

相关标签:
4条回答
  • 2020-12-04 01:01

    It looks like your DB cursor its full. After saving data from the cursor, close it, set it to null and create a new one so no buffers are kept in memory.

    this SO answer gives more information

    0 讨论(0)
  • 2020-12-04 01:04

    ANR occurs when the main thread is blocked for a few time. Specifically, 5 seconds in an Activity, 10 seconds in a BroadcastReceiver and 20 seconds in a Service. So, to avoid ANR, you need to ensure that you don't do something like these in you UI thread: reading or writing files, connecting the internet, operating databases and so on, which spend a lot of time. So, if you want to do things above, you may start a new thread to do that. Specifically, AsyncTask ThreadHandler and something like that.

    I hope this will help you.

    0 讨论(0)
  • 2020-12-04 01:17

    ANR occurs when Android detects the system is unable to respond to user input for more than a few seconds.

    CursorWindow﹕ Window is full: requested allocation 396488 bytes,
    free space 285853 bytes, window size 2097152 bytes
    04-01 05:32:34.328    1598-1607/com.inxed W/CursorWrapperInner﹕ 
    Cursor finalized without prior close()
    

    you need to close the cursor.

    0 讨论(0)
  • 2020-12-04 01:20

    ANR display if application cannot respond to the user input.According to the Google doc,you should not perform the work on the UI thread. I recommend you to perform network request or long running operation in worker thread instead of UI thread. for more this

    0 讨论(0)
提交回复
热议问题