有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java试图将通知文本提取到活动(解析)

我在我的应用程序中使用Parse来推送通知,我想在点击时在活动中显示通知文本。以下是我试图做到这一点的方式

我创建了一个名为PushNotification的新活动,用来处理传入的通知。类,我在其中创建了这个自定义类:

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。课堂不再是一种活动

我已经试着问过了。但是我没有得到太多的帮助,我需要尽快解决这个问题


共 (2) 个答案

  1. # 1 楼答案

    用于自定义推送通知

    在你的清单中这样指定

     <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>
    

    在parse dashboard中,您可以通过将文本设置为message或Json格式来手动测试推送通知

    实际的JSON格式是

    {“title”:“定制推送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) {
    
        {
    }
    
         
           
    }
    

    我希望,这有助于

  2. # 2 楼答案

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

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

    这将取代推送服务。setDefaultCallback调用。要使其工作,还必须在JSON负载中指定操作,如下所示:

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