这是我的代码,当收到推送通知时,我必须在AsyncTask中执行一些http请求。 据我所知,如果我需要在推送通知到达时执行某些操作,我必须在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的:
的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 :(得分:0)
我想,你不应该使用推送通知的onMessage方法中的AsyncTask。您应该调用一个执行http连接任务的服务。如果您正在使用Service类,请记住使用单独的线程,因为它仅在UI线程上运行。我希望这会帮助你。