Note that there are some explanatory texts on larger screens.

plurals
  1. POsending message to a handler on a dead thread
    primarykey
    data
    text
    <p>I am working on a background service that for a period of time poll to a server something. The point is that: I have an IntentService (called NotificationsService) which calls another service, but the response of this request does'nt get back. And in the logcat appears:</p> <pre><code>06-19 05:12:00.151: W/MessageQueue(6436): Handler (android.os.Handler) {416659f0} sending message to a Handler on a dead thread 06-19 05:12:00.151: W/MessageQueue(6436): java.lang.RuntimeException: Handler (android.os.Handler) {416659f0} sending message to a Handler on a dead thread 06-19 05:12:00.151: W/MessageQueue(6436): at android.os.MessageQueue.enqueueMessage(MessageQueue.java:196) 06-19 05:12:00.151: W/MessageQueue(6436): at android.os.Handler.sendMessageAtTime(Handler.java:473) 06-19 05:12:00.151: W/MessageQueue(6436): at android.os.Handler.sendMessageDelayed(Handler.java:446) 06-19 05:12:00.151: W/MessageQueue(6436): at android.os.Handler.post(Handler.java:263) 06-19 05:12:00.151: W/MessageQueue(6436): at android.os.ResultReceiver$MyResultReceiver.send(ResultReceiver.java:50) </code></pre> <p>I looked here problems similar but I got confused (I'm not using any AsyncTask, and I've looked for CommonsWare code wakefullIntent but i didn't understand it).</p> <p>Here it's the code for NotificationsService.java</p> <pre><code>public class NotificationsService extends IntentService { private static int TIME_INTERVAL_MILIS=90000; private static final int REFRESH=10; private NotificationManager noteManager; private static List&lt;FlightStatusNote&gt; flights= new ArrayList&lt;FlightStatusNote&gt;(); public NotificationsService(){ super("NotificationsService"); } @Override public void onCreate(){ Log.d("notificationsSservice","onCreate"); super.onCreate(); noteManager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); } @Override protected void onHandleIntent(Intent intent) { Log.d("NotificationsService","Me llamaron"); Log.d("NotificationsService", "intervalo:"+NotificationsService.TIME_INTERVAL_MILIS); Log.d("NotificationsService","Itero por cada vuelo registrado para notificar"); for(FlightStatusNote f: flights){ FlightStatus fly=f.getFlight(); Log.d("NotificationsService","Vuelo id:"+fly.getAirlineId()+fly.getNumberFlight()); Intent intentaux=new Intent(Intent.ACTION_SYNC,null,getBaseContext(),FlightStatusService.class); intentaux.putExtra("airlineFlight", fly.getAirlineId()); intentaux.putExtra("numberFlight",fly.getNumberFlight() ); intentaux.putExtra("receiver", new ResultReceiver(new Handler()) { @Override protected void onReceiveResult(int resultCode, Bundle resultData) { super.onReceiveResult(resultCode, resultData); Log.d("notificationsService","response received"); if (resultCode == FlightStatusService.STATUS_OK) { List&lt;FlightStatus&gt; fly = (List&lt;FlightStatus&gt;)resultData.getSerializable("return"); for(FlightStatus f: fly){ int indexNote=flights.indexOf(new FlightStatusNote(f,null)); FlightStatusNote fsNote=flights.get(indexNote); List&lt;String&gt; changes=fsNote.hasChanged(f); if(changes==null){ Log.d("notificationsService","changes is null"); } else{ Log.d("notficationsService", "comething changed"); createNotification(f, changes); } } } } }); startService(intentaux); } AlarmManager alarmMgr = (AlarmManager) getBaseContext().getSystemService(Context.ALARM_SERVICE); PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, new Intent(getBaseContext(), DealAlarmReceiver.class), 0); alarmMgr.set(AlarmManager.RTC, System.currentTimeMillis()+NotificationsService.TIME_INTERVAL_MILIS, pendingIntent); } } </code></pre> <p>If anyone can help me, I would appreciate it a lot! Cheers!</p> <p>Edit: I think the problem is that the Log "response received" it doesn't appear.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload