GCM通知を受信したときにメッセージを送信する必要があるAndroidアプリケーション(サービス付き)を作成しています。
主な問題: 同時に 3 つの SMS を送信すると、他の操作が長時間 (10 ~ 20 秒) 停止し、電話もブロックされます。スレッドでSMSを送信しようとしましたが、違いはありません。
SmsSender.java
public class SmsSender implements Runnable{
private Context context;
private String phoneNumber;
private String message;
private int id;
public SmsSender(Context paramContext, String phoneNumber, String message, int id) {
super();
this.context = paramContext;
this.phoneNumber = phoneNumber;
this.message = message;
this.id = id;
}
public void run() {
try {
Intent sentIntent = new Intent("sent");
Intent deliveredIntent = new Intent("delivered");
sentIntent.putExtra("id", id);
deliveredIntent.putExtra("id", id);
PendingIntent sentPI = PendingIntent.getBroadcast(this.context, id,sentIntent, 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this.context, id, deliveredIntent, 0);
SmsManager smsManager = SmsManager.getDefault();
ArrayList<String> parts = smsManager.divideMessage(message);
ArrayList<PendingIntent> sentList = new ArrayList<PendingIntent>();
sentList.add(sentPI);
ArrayList<PendingIntent> deliveredList = new ArrayList<PendingIntent>();
deliveredList.add(deliveredPI);
smsManager.sendMultipartTextMessage(phoneNumber, null, parts, sentList, deliveredList);
} catch (Exception e) {
e.printStackTrace();
}
}
}
スレッドを実行
新しいスレッド (新しい SmsSender (getApplicationContext()、phoneNumber、メッセージ、id)).start();
問題はどこだ?SMS が自分のスレッドではなく、メイン スレッドで送信されるのはなぜですか?