我在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目前只有一个示例布局。我不知所措......
答案 0 :(得分:0)
您在AndroidManifest.xml中声明了活动通知吗?