【问题标题】:Call Asynctask when a push notification appears出现推送通知时调用 Asynctask
【发布时间】:2013-07-01 06:26:02
【问题描述】:

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

【问题讨论】:

  • 是的,这可能你想使用 GCM!
  • 是的,我要使用 GSM
  • 我想知道你在 Asynctask 中要做什么
  • 我想做数据库操作,比如在 db 中插入、更新和删除行

标签: android push-notification


【解决方案1】:

在您的 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();

    }

【讨论】:

    【解决方案2】:

    有可能

    你有 GCMIntentService 有方法

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      相关资源
      最近更新 更多