使用广播接收器接收长进程短信的最佳方式

时间:2013-01-04 13:32:58

标签: java android broadcastreceiver

我是Android新手,这是我的第一个应用。

我有一个应用程序接收格式化的短信,我正在使用BroadcastReceiver来监听传入的消息。

在onReceive中我有一个进程,它将检查数据库中的重复记录。 (数据库有500K +行)并保存,如果没有重复。

是正确的还是我必须使用一些处理程序来处理这个过程?因为如果有传入消息,应用程序会有延迟响应。

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用ExecutorService获取线程执行程序服务,并向其提交Runnable个任务。

//--dedicated thread to run tasks one after another--
private final ExecutorService s = Executors.newSingleThreadExecutor();

//--handle incoming sms--
public void handleSms(final String input, final SQLiteDatabase db){
    s.submit(new Runnable() {
        @Override
        public void run() {
            //--do stuff with input and db
        }
    });
}