出现推送通知时调用Asynctask

时间:2013-07-01 06:26:02

标签: android push-notification

我的要求是当我的设备中有推送通知时,我需要调用Asynctask。该应用程序可以在后台运行。我不应该点击通知,而是当它到来时我需要调用Asynctask。这可能吗?

2 个答案:

答案 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)
        {

        }

如果您需要任何上下文服务有自己的上下文,此方法会接收消息并生成通知,您可以在此方法中执行异步任务