第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

將數(shù)據(jù)從通知發(fā)送到活動類,而不重新啟動意圖

將數(shù)據(jù)從通知發(fā)送到活動類,而不重新啟動意圖

GCT1015 2022-09-28 15:31:02
我正在使用 FCM 將通知數(shù)據(jù)負(fù)載從我的服務(wù)器發(fā)送到我的設(shè)備。當(dāng)應(yīng)用程序關(guān)閉或在后臺時(shí),我強(qiáng)迫他們重新啟動登錄過程,這是我的文件。Initialize.classHere is the onMessageReceived handler I am currently using.@Overridepublic void onMessageReceived(RemoteMessage remoteMessage) {    super.onMessageReceived(remoteMessage);    Log.e(TAG, "A notification packet was received from Firebase.");    if (remoteMessage.getData() != null) {        Log.e(TAG, "Notification Type: DATA");        String title = remoteMessage.getData().get("title");        String body = remoteMessage.getData().get("body");        String image = remoteMessage.getData().get("image");        MyNotificationManager.getInstance(getApplicationContext()).displayNotification(title, body, image);    } else if (remoteMessage.getNotification() != null) {        Log.e(TAG, "Notification Type: NOTIFICATION");        String title = remoteMessage.getNotification().getTitle();        String body = remoteMessage.getNotification().getBody();        MyNotificationManager.getInstance(getApplicationContext()).displayNotification(title, body, "logo");    }}但是,當(dāng)應(yīng)用程序位于前臺時(shí),我將重新發(fā)送作為意向。問題是,當(dāng)您第一次運(yùn)行初始化時(shí),它正在創(chuàng)建一個(gè)TimeSignOn令牌并登錄/創(chuàng)建新會話。由于您在瀏覽應(yīng)用程序時(shí)已經(jīng)登錄,因此這對我來說不再重要,我只需要向他們發(fā)送瀏覽器類應(yīng)導(dǎo)航到的新頁面,而無需重新啟動類。Browser.classvoid displayNotification(String title, String body, String image) { .....    Class launchIntent = Browser.class;    if (isAppIsInBackground(context)) {        launchIntent = Initialize.class;    }    Intent intent = new Intent(context, launchIntent);    intent.putExtra("NOTIFICATION_PACKET", "CONTENT");    PendingIntent pendingIntent = PendingIntent.getActivity(mCtx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);    mBuilder.setContentIntent(pendingIntent);}有沒有辦法將有效負(fù)載信息發(fā)送到瀏覽器上的 onResume 運(yùn)算符.class而不是傳遞 ,這樣我就不需要重新加載整個(gè)活動?這導(dǎo)致的最大問題是它將多個(gè)瀏覽器活動堆疊到第一個(gè)上。intent.putExtra有沒有更好的方法來檢查活動是離線還是只是在后臺?以下是我目前檢查的方式
查看完整描述

1 回答

?
守著星空守著你

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊

所以我找到了一種方法讓它工作。不確定這是否是黑客攻擊,但它的工作原理!


首先將 的安卓指南設(shè)置為以下內(nèi)容:.Browser


android:launchMode="singleTask"

然后在我們添加以下方法Browser.class


@Override

protected void onNewIntent(Intent intent) {

    super.onNewIntent(intent);

    setIntent(intent);

}

最后,在 onResume 函數(shù)中,我們覆蓋并添加了以下花絮


@Override

protected void onResume() {

    super.onResume();

    Intent intent = getIntent();

    if (intent.hasExtra("NOTIFICATION_PACKET")) {

        Log.e(TAG, "The following data was received from the notification packet: " + getIntent().getStringExtra("NOTIFICATION_PACKET"));

        getIntent().removeExtra("NOTIFICATION_PACKET");

    }

}

現(xiàn)在,我們可以使用數(shù)據(jù)包信息并立即銷毀它,以便在重新啟動應(yīng)用程序時(shí)不會再次調(diào)用它。這會將應(yīng)用保持在堆棧的頂部,并且在應(yīng)用處于前臺時(shí)不會重新啟動它。:)


查看完整回答
反對 回復(fù) 2022-09-28
  • 1 回答
  • 0 關(guān)注
  • 71 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號