试图将通知文本提取到Activity(解析)

时间:2013-11-04 22:39:54

标签: java android parse-platform

我在我的应用中使用Parse推送通知,我想在点击时在Activity中显示通知文字。这是我试图这样做的方式。

我创建了一个新活动,它应该处理名为PushNotification.class的传入通知,并在其中创建了这个自定义类:

public class PushNotification extends BroadcastReceiver {
private static final String TAG = "MyCustomReceiver";

@Override
public void onReceive(Context context, Intent intent) {
try {
      String action = intent.getAction();
      String channel = intent.getExtras().getString("com.parse.Channel");
      JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));

      Log.d(TAG, "got action " + action + " on channel " + channel + " with:");
      Iterator itr = json.keys();
      while (itr.hasNext()) {
        String key = (String) itr.next();
        Log.d(TAG, "..." + key + " => " + json.getString(key));
      }
      String message = json.getString("alert");
    } catch (JSONException e) {
      Log.d(TAG, "JSONException: " + e.getMessage());
    }
    }
}

现在主要问题是这行代码不再有效:

PushService.setDefaultPushCallback(this, PushNotification.class);

它强调了“setDefaultPushCallback”部分,因为它显然不再将PushNotification.class识别为Activity。

我已经尝试过在parse.com上询问这个问题,但我没有得到太多帮助,我需要尽快解决这个问题。

2 个答案:

答案 0 :(得分:3)

自定义推送通知

在你的Manifest中指定如下。

 <service android:name="com.parse.PushService" />

    <receiver
        android:name="packagename.CustomParseBroadcastReceiver"
        android:exported="false" >
        <intent-filter>
            <action android:name="custom-action-name" />
        </intent-filter>
    </receiver>

在解析仪表板中,您可以通过将文本设置为消息或Json格式来手动测试推送通知。

实际的JSON格式是

{“title”:“Custom Push-Android”,“objectId”:“ * ** iuy”,   “objectType”:“type”,“action”:“custom-action-name”}

复制此格式并手动发送...

然后创建你的广播类..

样品:

public class CustomParseBroadcastReceiver extends BroadcastReceiver 

{
  public static final String ACTION = "custom-action-name";


@Override
public void onReceive(Context context, Intent intent) {

    {
}

   ----
   ----  
}

我希望,这有助于...............

答案 1 :(得分:0)

如果您从响应切换到活动推送,则必须在清单中指定广播接收器(请参阅Responding to an Intent):

<receiver android:name="com.example.PushNotification">
<intent-filter>
  <action android:name="com.example.UPDATE_STATUS" />
</intent-filter>
</receiver>

取代 PushService.setDefaultCallback调用。为此,您还必须在JSON有效负载中指定操作:

{"action":"com.example.UPDATE_STATUS", "alert":"Your message here"}