2012-01-26 174 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"))