我的要求是当我的设备中有推送通知时,我需要调用Asynctask。该应用程序可以在后台运行。我不应该点击通知,而是当它到来时我需要调用Asynctask。这可能吗?
答案 0 :(得分:2)
在GCMIntentService中,只需覆盖onMessage(..)方法,此方法在推送通知进入设备时调用。
@Override
protected void onMessage(Context context, Intent intent) {
mContext = context;
final String message = intent.getStringExtra("message");
Log.e(TAG, "GCM Received message : "+message);
AsyncTask<Void, Void, Void> DatabaseOperationTask = new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
// do your Database Operation here
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
};
DatabaseOperationTask.execute();
}
答案 1 :(得分:1)
是的,有可能
你有GCMIntentService,它有方法
@Override
protected void onMessage(Context context, Intent intent)
{
}
如果您需要任何上下文服务有自己的上下文,此方法会接收消息并生成通知,您可以在此方法中执行异步任务