I want to send a HTTP POST request to a URL on OnReceive event of BroadcastReceiver, but I'm getting the exception NetworkOnMainThreadException, How to run a thread on OnReceive event.
public void onReceive(Context context, Intent intent) {
    final Bundle bundle = intent.getExtras();
    try
    {
        if (bundle != null) {
            final Object[] pdusObj = (Object[]) bundle.get("pdus");
            for (int i = 0; i < pdusObj.length; i++) {
                SmsMessage currentmessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                String phonenumber =  currentmessage.getDisplayOriginatingAddress();
                String senderNum = phonenumber;
                String message = currentmessage.getDisplayMessageBody();
                String msg = message.substring(5); 
                Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + msg);
                int duration = Toast.LENGTH_LONG;
                Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ", message: " + msg, duration);
                toast.show();   
                sendhttprequest("http://example.com/product", "rl", "12345678");                    
            }
        }
    }
    catch (Exception e) {
        Log.e("SmsReceiver", "Exception smsReceiver" +e);
    }       
}
sendhttprequest is the function which is used to call http post request.
Please help.
 
     
     
    