मेरे ऐप में कुछ अलग प्रकार के ऑपरेशन हैं जो एफसीएम के साथ अपने डेटा के साथ क्रमशः notifications भेजते हैं। डेटा अधिकतर समान है इसलिए मैं डेटा मॉडल वर्ग के साथ केवल एक sendNotification विधि का उपयोग कर रहा हूं। मैं सफलतापूर्वक notifications भेजता हूं, लेकिन मैं उनके लिए इंटेंट ऑपरेशन सेट करने में उलझन में हूं, इसलिए वे हमेशा मुझे केवल ChatActivity के लिए चाहते हैं। ये नोटिफिकेशन चैटएक्टिविटी से मैसेज नोटिफिकेशन, प्रोफाइल एक्टिविटी से फ्रेंड रिक्वेस्ट नोटिफिकेशन और कमेंट एक्टिविटी से कमेंट नोटिफिकेशन हैं।

private fun sendNotification(mRemoteMessage: RemoteMessage) {

        val user = mRemoteMessage.data["user"]
        val icon = mRemoteMessage.data["icon"]
        val title= mRemoteMessage.data["title"]
        val body = mRemoteMessage.data["body"]

        val notification = mRemoteMessage.notification
        val j = user!!.replace("[\\D]".toRegex(), "").toInt()
        val intent = Intent(this, ChatActivity::class.java)

        val bundle = Bundle()
        bundle.putString("userId", user)
        intent.putExtras(bundle)
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)

        val pendingIntent = PendingIntent.getActivity(this, j, intent, PendingIntent.FLAG_ONE_SHOT)

        val defaultSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)

        val builder : NotificationCompat.Builder = NotificationCompat.Builder(this)
                .setSmallIcon(icon!!.toInt())
                .setContentTitle(title)
                .setContentText(body)
                .setAutoCancel(true)
                .setSound(defaultSound)
                .setContentIntent(pendingIntent)

        val noti = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

        var i = 0

        if (j > 0){
            i=j
        }
        noti.notify(i, builder.build())

    }
1
mr. groot 16 नवम्बर 2020, 19:26

1 उत्तर

सबसे बढ़िया उत्तर

सरल समाधान एक प्रकार की अधिसूचना जोड़ रहा है, उदाहरण के लिए: new_message, add_friend,.. तो उस प्रकार के साथ आप उस इरादे को निर्धारित कर सकते हैं जिसे आप पास करना चाहते हैं। उदाहरण:

if (type == "new_message") { 
 // let's new an intent of chat activity here
} else if (type == "add_friend") {
// let's new an intent of friend activity
}

फिर इस तरह के लंबित इरादे में इरादा डालें: वैल लंबित इंटेंट = लंबित इंटेंट। getActivity (यह, जे, इरादा, लंबित इंटेन्ट। FLAG_ONE_SHOT)

3
Chuong Le Van 17 नवम्बर 2020, 06:57