0

smslib を使用して Java で sms デスクトップ アプリをプログラミングしています。私のプログラムは sms をデータベース テーブルに格納し、sms を別のテーブルと比較し、最後に新しい sms を返す必要があります。このプロセスをスレッドで実装する方法は?? タイマー?アプリを終日実行し続ける必要があります。プログラムは数値を別のテーブルと比較し、異なるものを返すだけです。アプリはありますが、部分的には、あなたのアプローチを知りたいだけです。ユーザーは新しい番号が記載された SMS を受け取ります

pd smslib とクラス readmessages および sendmessages を使用します。この部分で立ち往生しています。プログラムがクラッシュすることは望ましくありません

4

1 に答える 1

1

SMSLib には、メッセージを受信する 2 つの方法があります。

  • を使用してService.readMessages()。これには、ある種のスケジューリングを実装する必要があります。たとえば、独自のスレッドまたはタイマー タスクです。
  • コールバックを実装しています。これは私見の好ましい方法です。この場合、ライブラリはスケジューリングとすべてを考慮します。SMS メッセージが到着したときに SMSLib によって呼び出されるコールバックを実装するだけです。それをDBに保存し、メッセージを比較して返信を送信するロジックを実装するだけです。

メッセージの送信には時間がかかる場合があるため (場合によっては数秒)、これを非同期で行う必要があります。さらに、送信が失敗する可能性があるため、おそらく再試行メカニズムを実装する必要があります。したがって、キューイングを使用します。最も簡単な方法は、java.concurrency パッケージの Executors フレームワークを使用することです。

于 2012-05-01T14:11:22.147 に答える