Android活动不是从Parse Notification开始的

时间:2014-06-27 04:55:47

标签: parse-platform push android-notifications

我在Android上的Parse通知有一个奇怪的问题。

仅在应用程序未运行,收到通知且应用程序启动的情况下才会发生。第一个通知将正确启动默认的推送回调活动,但任何后续通知都不会启动活动!这使得通知无法被发现。

当应用程序从它的图标启动时,回调活动正确启动,我看到调用的onCreate函数。但是当它从图标启动时会失败。

我已正确添加了所有权限和应用程序清单添加项。我已经将以下类指定为初始化Parse API并设置回调的应用程序。

package com.distriqt.example.test;

import android.app.Application;
import com.parse.Parse;
import com.parse.ParseInstallation;
import com.parse.PushService;

public class MainApplication extends Application 
{
    public static String PARSE_APPLICATION_ID   = "XXXX";
    public static String PARSE_CLIENT_KEY       = "YYYY";

    @Override
    public void onCreate()
    {
        super.onCreate();

        Parse.setLogLevel( Parse.LOG_LEVEL_DEBUG );

        Parse.initialize( this, PARSE_APPLICATION_ID, PARSE_CLIENT_KEY );
        PushService.setDefaultPushCallback( this, ParseCallbackActivity.class );
        ParseInstallation.getCurrentInstallation().saveInBackground();
    }
}

我的回调活动如下所示。我基本上是在开始主要的包活动,并在此处对通知进行一些处理,然后立即完成活动。

package com.distriqt.example.test;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;

public class ParseCallbackActivity extends Activity
{
    public static String TAG = ParseCallbackActivity.class.getSimpleName();

    @Override
    public void onCreate( Bundle savedInstanceState )
    {
        super.onCreate( savedInstanceState );
        Log.d( TAG, "onCreate()" );

        PackageManager pm = getPackageManager();
        Intent mainAppIntent = pm.getLaunchIntentForPackage( getPackageName() );
        mainAppIntent.putExtras( getIntent().getExtras() );
        mainAppIntent.addFlags( Intent.FLAG_ACTIVITY_REORDER_TO_FRONT );
        startActivity( mainAppIntent );

        printIntent( getIntent() );

        finish();
    }
    public static void printIntent( Intent intent )
    {
        try
        {
            Log.d( TAG, "action = " + intent.getAction() );
            if (intent.getExtras() != null)
            {
                String channel = intent.getExtras().getString("com.parse.Channel");
                JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));


                Log.d( TAG, "==============================================");
                Log.d( TAG, String.format( "channel:    %s", channel ));
                Log.d( TAG, String.format( "json:       %s", json ));
                Log.d( TAG, "==============================================");
            }
        }
        catch (Exception e)
        {
        }
    }
}

MainActivity目前只有一个示例布局。我不知所措......

1 个答案:

答案 0 :(得分:0)

您在AndroidManifest.xml中声明了活动通知吗?