当用户点击 Parse.com 通知时打开活动

Posted

技术标签:

【中文标题】当用户点击 Parse.com 通知时打开活动【英文标题】:Open activity when user taps on Parse.com notification 【发布时间】:2015-03-12 17:01:24 【问题描述】:

我正在使用 Parse.com 接收通知,我想在用户点击传入通知时打开 MessagesActivy。

目前,当我点击通知时,它会打开 SplashActivity(启动活动),当我按下返回按钮时,还会加载 MessagesActivity。

我正在使用自己的ParseBroadCastReciver来处理onPushOpen,这里你可以看一下代码。

public class MyReciever extends ParsePushBroadcastReceiver 

private static final String TAG = "MyCustomReceiver";
private HashMap<String, String> dataMap;

@Override
protected void onPushOpen(Context context, Intent intent) 
    super.onPushOpen(context, intent);
    if (intent == null) 
        Log.d(TAG, "Receiver intent null");
     else 
        String action = intent.getAction();
        Log.d(TAG, "got action " + action);
        JSONObject json = null;
        try 
            json = new JSONObject(intent.getExtras().getString("com.parse.Data"));

         catch (JSONException e) 
            e.printStackTrace();
        

        Iterator itr = json.keys();
        dataMap = new HashMap<String, String>();
        while (itr.hasNext()) 
            String key = (String) itr.next();
            Log.d(TAG, "key: "+ key);
            try 
                String value = json.getString(key);
                Log.d(TAG, "value: "+value);
                dataMap.put(key, value);

             catch (JSONException e) 
                e.printStackTrace();
            
        

        if(dataMap.containsKey("from")) 
            Log.d("TAG", "key == from i value == "+dataMap.get("from"));
            Intent msgPushIntenet = new Intent(context, MessagesActivity.class);
            msgPushIntenet.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
            msgPushIntenet.putExtra("user_id", dataMap.get("from"));
            //msgPushIntenet.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            context.getApplicationContext().startActivity(msgPushIntenet);
            Log.d("TAG", "startujem Messages Activity");
        


    

我可以做些什么来打开 MessagesActivity

【问题讨论】:

【参考方案1】:

onPushOpen方法中使用这个

 Intent msgPushIntenet = new Intent(context, MessagesActivity.class);
            msgPushIntenet.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
            msgPushIntenet.putExtra("user_id", dataMap.get("from"));
            context.startActivity(msgPushIntenet);

来自here。

【讨论】:

还是先打开SplashActivity(启动Activity)。你有别的想法吗?

以上是关于当用户点击 Parse.com 通知时打开活动的主要内容,如果未能解决你的问题,请参考以下文章

使用 parse.com 处理应用程序中的推送通知

当用户点击通知时,Activity 没有打开

使用 Parse 推送通知:当应用程序处于后台时显示警报

当用户点击 Flutter App 中的 Firebase 通知时如何打开链接?

推送通知打开一个新活动

当用户使用 iOS 13 Swift 5 点击推送通知时,在特定视图中打开应用程序