Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 仅在执行某些函数后显示收到的推送通知_Android_Push Notification_Urbanairship.com - Fatal编程技术网

Android 仅在执行某些函数后显示收到的推送通知

Android 仅在执行某些函数后显示收到的推送通知,android,push-notification,urbanairship.com,Android,Push Notification,Urbanairship.com,现在我已经这样做了:单击通知将导致一个活动,从那里我调用一个asynctask,然后显示结果,但我需要像whatsapp一样的快速加载效果。因此,我需要在显示通知之前加载整个dataasynctask,这意味着我必须在通知执行后在收到通知时调用asynctask,只在通知栏上显示通知消息 这是我的收音机 import android.content.BroadcastReceiver; import android.content.Context; import android.content.

现在我已经这样做了:单击通知将导致一个活动,从那里我调用一个asynctask,然后显示结果,但我需要像whatsapp一样的快速加载效果。因此,我需要在显示通知之前加载整个dataasynctask,这意味着我必须在通知执行后在收到通知时调用asynctask,只在通知栏上显示通知消息

这是我的收音机

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

import com.urbanairship.UAirship;
import com.urbanairship.push.PushManager;

public class IntentReceiver extends BroadcastReceiver {

private static final String logTag = "PushSample";

@Override
public void onReceive(Context context, Intent intent) {
    Log.i(logTag, "Received intent: " + intent.toString());
    String action = intent.getAction();

    if (action.equals(PushManager.ACTION_PUSH_RECEIVED)) {

        int id = intent.getIntExtra(PushManager.EXTRA_NOTIFICATION_ID, 0);

        Log.i(logTag, "Received push notification. Alert: " 
                + intent.getStringExtra(PushManager.EXTRA_ALERT)
                + " [NotificationID="+id+"]");

    } else if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) {

        Log.i(logTag, "User clicked notification. Message: " + intent.getStringExtra(PushManager.EXTRA_ALERT));
        String caseId = intent.getStringExtra("caseId");
        Log.i(logTag, "CaseID is: " + caseId);
        Intent launch = new Intent(Intent.ACTION_MAIN);

        launch.setClass(UAirship.shared().getApplicationContext(), CaseDetailActivity.class);
        launch.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        launch.putExtra("caseId", caseId);

        UAirship.shared().getApplicationContext().startActivity(launch);

    } else if (action.equals(PushManager.ACTION_REGISTRATION_FINISHED)) {
        Log.i(logTag, "Registration complete. APID:" + intent.getStringExtra(PushManager.EXTRA_APID)
                + ". Valid: " + intent.getBooleanExtra(PushManager.EXTRA_REGISTRATION_VALID, false));
    }

}
}

你熟悉android中的异步任务吗?它们专门用于在执行后在UI线程上显示结果是的,我知道这一部分。我只是想知道如何防止通知显示。您可以在异步任务的doInBackground中编写函数体,并在异步任务的onPostExecute的通知栏中显示结果。显示通知的代码就是我想要的。我正在使用UrbanAirship请检查上面的代码