1

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

4

2 回答 2

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();

    }
于 2013-07-01T06:44:23.113 回答
1

对的,这是可能的

你有 GCMIntentService 有方法

    @Override
    protected void onMessage(Context context, Intent intent)
        {

        }

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

于 2013-07-01T06:41:59.137 回答