从 AsyncTask 实例快速更新 sqlite 数据库是否可取?我在服务中收到 ANR
Is it advisable to update sqlite database rapidly from AsyncTask instances? I am getting ANR in the Service
这是我的场景:
聊天消息通过远程服务中的websocket进入设备。
消息由新的 AsyncTask 实例记录在数据库 table 中。
消息然后发送到 Activity,通过远程服务到 Activity 通信显示它。
一段时间后,我在服务中收到 ANR,然后服务因 SIGABRT 或其他原因而崩溃!
我在重负载下进行了测试。 (如聊天消息快速流动,比如每秒 1 条)
我的问题是:会不会是快速数据插入数据库中的AsyncTasks..(我知道他们是串行执行任务的,不管有多少我使用,对吧?) 引起了导致崩溃的 ANR?
谢谢!
尝试更改您的代码
new MyAsyncTask().execute();
到
new MyAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
如果没有看到你的代码,我很难说得更具体
这是我的场景:
聊天消息通过远程服务中的websocket进入设备。
消息由新的 AsyncTask 实例记录在数据库 table 中。
消息然后发送到 Activity,通过远程服务到 Activity 通信显示它。
一段时间后,我在服务中收到 ANR,然后服务因 SIGABRT 或其他原因而崩溃!
我在重负载下进行了测试。 (如聊天消息快速流动,比如每秒 1 条)
我的问题是:会不会是快速数据插入数据库中的AsyncTasks..(我知道他们是串行执行任务的,不管有多少我使用,对吧?) 引起了导致崩溃的 ANR?
谢谢!
尝试更改您的代码
new MyAsyncTask().execute();
到
new MyAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
如果没有看到你的代码,我很难说得更具体