2012-01-26 58 views
1

我正在开发一个android短信应用程序,它不会将邮件保存在收件箱中。 我需要使用web服务调用来验证消息的内容,然后删除广播。android - 短信接收广播接收器中止

在的onReceive()用于SMSReceiver

if (messageBody.equals("somedata")) 
    { 

     Intent i = new Intent(context,Webservice.class);//webservice validation 
     i.putExtra("messageBody",messageBody) 
     startService(i); 

    // Stop it being passed to the main Messaging inbox 
     abortBroadcast(); 
    } 

的Intentservice用于Web服务调用从未得到executed.The接收机在此之前中止。 我是新来的机器人,所以请让我知道,如果它是正确的服务,在broacast接收器(SMS_RECEIVE)的onReceive()中启动的意向服务中的web服务调用。

+0

你有没有给你的androidmainfest.xml文件的阅读权限? – Lucifer

+0

是我给了以下权限 \t \t

回答

1

使用记录,确保了equals()返回true。如果是这样的话,那可能是你在onReceive()中做了一些耗时的事情,并且BroadcastReceiver被杀死了。从技术文档:

http://developer.android.com/reference/android/content/BroadcastReceiver.html#onReceive(android.content.Context,android.content.Intent)

的功能通常被称为其进程的主线程中,所以你永远不应该在它执行长时间运行的操作(有超时在考虑接收器被阻塞并且候选人被杀死之前系统允许的10秒)。

1

它可能在你的消息体的可变空间的问题,

请试试这个,

if (messageBody.trim().equals("somedata"))