2012-06-08 3 views
0

У меня есть программа, которая отправляет предопределенное сообщение в зависимости от того, какую кнопку я нажимаю. Он отлично работал на моем старом телефоне (OG Evo), но будет отправлять только первые 14 человек на моем новом (Evo LTE).Массовые SMS не отправляются всем

Я вытащил LogCat и продолжаю видеть этот блок кода снова и снова:

06-06 11:25:34.850: W/MessageQueue(28308): null sending message to a Handler on a dead thread 
06-06 11:25:34.850: W/MessageQueue(28308): java.lang.RuntimeException: null sending message to a Handler on a dead thread 
06-06 11:25:34.850: W/MessageQueue(28308): at android.os.MessageQueue.enqueueMessage(MessageQueue.java:200) 
06-06 11:25:34.850: W/MessageQueue(28308): at android.os.Looper.quit(Looper.java:245) 
06-06 11:25:34.850: W/MessageQueue(28308): at android.os.HandlerThread.quit(HandlerThread.java:96) 
06-06 11:25:34.850: W/MessageQueue(28308): at com.htc.usage.service.UsageStatsService.onDestroy(UsageStatsService.java:197) 
06-06 11:25:34.850: W/MessageQueue(28308): at android.app.ActivityThread.handleStopService(ActivityThread.java:2762) 
06-06 11:25:34.850: W/MessageQueue(28308): at android.app.ActivityThread.access$2000(ActivityThread.java:139) 
06-06 11:25:34.850: W/MessageQueue(28308): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1338) 
06-06 11:25:34.850: W/MessageQueue(28308): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-06 11:25:34.850: W/MessageQueue(28308): at android.os.Looper.loop(Looper.java:154) 
06-06 11:25:34.850: W/MessageQueue(28308): at android.app.ActivityThread.main(ActivityThread.java:4977) 
06-06 11:25:34.850: W/MessageQueue(28308): at java.lang.reflect.Method.invokeNative(Native Method) 
06-06 11:25:34.850: W/MessageQueue(28308): at java.lang.reflect.Method.invoke(Method.java:511) 
06-06 11:25:34.850: W/MessageQueue(28308): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
06-06 11:25:34.850: W/MessageQueue(28308): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
06-06 11:25:34.850: W/MessageQueue(28308): at dalvik.system.NativeStart.main(Native Method) 
06-06 11:25:35.320: D/PhoneStatusBarPolicy(611): @@ iconIndex=1 
06-06 11:25:35.320: D/PhoneStatusBarPolicy(611): isCdma():true hasService:true mSimState=UNKNOWN gprsState=0 mDataState=2 dataActivity=4 mPhone.htcModemLinkOn:false hspa==true 
06-06 11:25:35.330: D/PhoneStatusBarPolicy(611): hasService()=true ,mDataState=2 ,mPhone.htcModemLinkOn()=false ,mDataActivity=4 
06-06 11:25:35.340: D/PhoneStatusBarPolicy(611): slotType[0]=SIM 
06-06 11:25:35.451: V/UsageStatsService(28308): CMD_ID_UPDATE_MESSAGE_USAGE 
06-06 11:25:35.471: V/UsageStatsService(28308): MSG_ON_MESSAGE_UPDATE 
06-06 11:25:35.501: V/UsageStatsService(28308): MSG_STOP_SERVICE 
06-06 11:25:35.501: V/UsageStatsService(28308): onDestroy 

Полная LogCat: http://pastebin.com/hZXwR5FL

Я не понимаю, как нить становится закрыта после того, как 15 человек, так как я Я не закрываю его.

Мое кодирование: http://pastebin.com/xe4U4GYZ

Можно ли определить, как эта нить становится закрыта?

ответ

0

Может быть связкой вещей, как жесткий лимит, установленный HTC на количество отправляемых сообщений за определенное количество времени.

Вы можете попробовать несколько вещь:

  1. Вставьте петлю у вас есть в каждом clickListener внутри метода
  2. Поместите петлю в новом потоке через AsyncTask, так что вы не подвесить UI
  3. Создать только один SMSManager и использовать его вместо того, чтобы воссоздать его для каждого сообщения вы отправляете
  4. Try, чтобы отправить сообщение нескольким пользователям сразу после этой идеи: How to send text message to more than 1 number?

Удача

Смежные вопросы