1

這是我的代碼,當收到推送通知時,我必須在AsyncTask中執行一些http請求。 據我瞭解,如果我需要在推送通知到達時執行某些操作,我必須在OnMessage()方法中執行此操作。 然而,應用程序崩潰時收到通知,並沒有做什麼,我需要它做的事: 代碼:在onMessage()上收到推送通知時執行一些代碼

@Override 
protected void onMessage(Context context, Intent intent) { 
    Log.i(TAG, "Received message"); 
    String message = intent.getExtras().getString("price"); 
    //sends info to the server 

    new PostAsyncTask().execute(); 

    displayMessage(context, message); 
    // notifies user 
    generateNotification(context, message); 
} 

非常感謝您! (如果您需要全班只說這不過我可以告訴你的是,PostAsyncTask執行一些HttpRequest的代碼。)

的logcat:

http://pastebin.com/LggC0uFq

的AsyncTask: (它只是調用執行一些HTTP請求的功能)

class PostAsyncTask extends AsyncTask<String, Integer, Boolean> { 
    protected Boolean doInBackground(String... params) { 
     ReNewCoordinates(); 
     postData(lat, lon); 
      return true; 

    } 

    protected void onPreExecute() { 
     // show progress dialog 
    } 


     protected void onPostExecute(Long result) { 
      // hide progress dialog 
     } 
    } 
+0

你能告訴我們你的logcat嗎? – 2013-03-25 08:46:56

+0

而不是使用AsyncTask使用線程,我正在使用相同的地方,我在線程下載圖像時收到推送通知。 – andrewww 2013-03-25 08:51:59

+0

我不認爲這是問題。即使我不使用asyncTask,只是調用一些執行請求的方法它會壓碎。 – NirPes 2013-03-25 08:55:22

回答

0

我猜,你不應該從推送通知的onMessage方法使用的AsyncTask。您應該調用一個服務來完成建立http連接的任務。另外請記住,如果您使用Service類時使用單獨的線程,因爲它僅在UI線程上運行。我希望這能夠幫到你。