0

私はAndroidを初めて使用し、これが私の最初のアプリです。

フォーマットされたSMSを受信するアプリがあり、BroadcastReceiverを使用して着信メッセージをリッスンしています。

onReceiveの内部には、データベース内の重複レコードをチェックするプロセスがあります。(データベースには500K以上の行があります)重複がない場合は保存します。

それは正しいですか、それともプロセスを処理するためにハンドラーを使用する必要がありますか?着信メッセージがある場合、アプリの応答が遅れるからです。

前もって感謝します。

4

1 に答える 1

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
        }
    });
}
于 2013-01-04T13:58:34.033 に答える