React-native-onesignal: 当设备长时间处于非活动状态时,点击通知不起作用

创建于 2020-05-28  ·  35评论  ·  资料来源: OneSignal/react-native-onesignal

描述:

注意:在所有情况下都会收到通知,并且当设备处于活动状态时,单击在所有情况下都有效。

当设备长时间处于待机模式或在设备关闭并重新启动时收到通知时,会出现此问题:

单击时的通知不会打开应用程序,实际上什么也没发生。

环境
反应原生:0.62.0
设备:一加3
安卓版本:9

重现问题的步骤:

当设备处于活动状态时,通常不会发生此问题。 要重现您需要更改设备设置并确保应用程序已终止。

  1. 设置>系统>开发者选项>后台进程限制>无后台进程
  2. 从仪表板发送通知
  3. 在设备上收到通知
  4. 点击通知,应用打不开

还要别的吗:
注意:我正在使用通知扩展程序服务来更改通知的布局。

另外,我参考此评论尝试挂起 Intent

这是代码:

import android.util.Log;
import androidx.core.app.NotificationCompat;
import com.onesignal.OSNotificationDisplayedResult;
import com.onesignal.NotificationExtenderService;
import com.onesignal.OSNotificationReceivedResult;
import java.math.BigInteger;
import android.widget.RemoteViews;
import android.app.PendingIntent;
import android.content.Intent;
import org.json.JSONObject;
import org.json.JSONArray;
import org.json.JSONException;

public class NotificationBigStyle extends NotificationExtenderService {
   String channelId = "";
   <strong i="29">@Override</strong>
   protected boolean onNotificationProcessing(OSNotificationReceivedResult receivedResult) {
      OverrideSettings overrideSettings = new OverrideSettings();
      RemoteViews notificationBig = new RemoteViews(getPackageName(), R.layout.notification_big);

   notificationBig.setTextViewText(R.id.notification_title,receivedResult.payload.body);
   notificationBig.setImageViewResource(R.id.image,R.drawable.notification);

   int requestID = (int) System.currentTimeMillis();

   Intent intent = new Intent(getApplicationContext(), MainActivity.class);
   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
   PendingIntent pendingIntent = PendingIntent.getActivity(this,requestID,intent, PendingIntent.FLAG_UPDATE_CURRENT);

   try {
      JSONObject payload = new JSONObject(receivedResult.payload.rawPayload);
      String channelPayload = payload.getString("chnl");
      JSONObject channel = new JSONObject(channelPayload);
      channelId = channel.getString("id");
   }
   catch (JSONException e) {
       e.printStackTrace();
   }


    overrideSettings.extender = new NotificationCompat.Extender() {
         <strong i="30">@Override</strong>
         public NotificationCompat.Builder extend(NotificationCompat.Builder builder) {
                   builder
                    .setCustomHeadsUpContentView(notificationBig)
                    .setCustomContentView(notificationBig)
                    .setContent(notificationBig)
                    .setCustomBigContentView(notificationBig)
                    .setContentIntent(pendingIntent)
                    .setChannelId(channelId)
                    .setAutoCancel(true);
                   return builder;
         }
      };

      OSNotificationDisplayedResult displayedResult = displayNotification(overrideSettings);
      return true;
   }
}
Android Possible Bug

最有用的评论

@jkasten2

谢谢你的时间。 我检查了 4.0.4 并尝试了所有可能的情况。 现在,一切似乎都在工作!

一旦在 Beta 版中与我们的用户进行彻底测试,我将在接下来的 3 天内确认。

所有35条评论

你好,

设置>系统>开发者选项>后台进程限制>无后台进程

你为什么在这里杀死后台进程? 如果您要更改默认的 Android 设置,我们无法保证行为。 通知点击是通过从后台进程启动意图来处理的,因此它不会按预期工作。 希望这能澄清问题。

@rgomezp ,感谢您的回复。 那是为了重现这个问题,因为通常在活动状态下,点击通知可以正常工作。

我将在这里更详细地解释这个问题:

  1. 假设我的设备是否长时间处于非活动状态,例如 3-4 小时
  2. 在此期间收到通知
  3. 稍后我解锁设备并单击通知,它不会打开应用程序。

当设备关闭时也会发生此问题,我打开设备并收到
以前的通知,当我点击它们时,它不会打开应用程序。

如果您需要更多信息,请告诉我

@rgomezp你有时间检查一下吗? 我的大多数用户都面临这个问题

你好@crusy26
我们的通知恢复逻辑应该处理这个问题。 但是您必须确保允许启动后台进程。 也许这是 OnePlus 设备的限制。

我们的 onesignal 设置遇到了完全相同的问题。 但是我们没有使用通知扩展程序。

@crushy26你有没有找到任何解决方法或更多细节? 你安装了 react-native-screens 吗? 如果是的话,试试这个: https :

顺便说一句,我们正在使用[email protected]

@binchik无论扩展器如何,问题都会发生。 但我打算不恢复通知,只允许在设备处于活动状态时显示通知(遗憾的是,至少必须这样做以避免此类错误的用户体验)。 我将在明天实施。 参考

不,我没有使用 react-navigation,我使用的是 WIX 的 react-native-navigation。 上面带有 react-native-screens 的东西是否解决了这个问题?

还有你能告诉我,你遇到这个问题的设备是什么?

@crushy26当我应用上面提到的 react-native-screens 问题的修复程序时,我的问题得到了解决。 我使用的设备是三星 Galaxy S8。 这是我唯一拥有的设备,尚未在任何其他设备上进行测试。

@binchik你如何测试这个? 你的情况是什么? 因为对我来说,当设备长时间处于非活动状态并且在此期间收到通知时。 稍后解锁设备时,点击通知什么也不做。

@crushy26我遇到了同样的情况,您的复制步骤也使应用程序在启动时崩溃了。 我按照您的建议在设置中使用了“无后台进程”选项。 在补丁之前它崩溃了,在我应用补丁之后它停止了崩溃。

当我尝试使用adb logcat进行调试时,我看到了我发布的 react-native-screens 问题中的错误消息。

好的,所以您使用相同的“无后台进程”选项进行了复制和测试,解决了吗? 如果是这种情况,我也会这样做,因为直到现在我认为这是一种反方法或不是重现问题的正确方法。

可以关闭这个问题@crushy26吗?

@rgomezp该问题在 repo 中的示例应用程序上仍然存在。 我不确定这里的任何人都没有报告过这个问题。 OnePlus 被全球大多数用户使用。 其他应用程序,即使来自不太知名的开发人员,也可以使用相同的无后台进程设置(这仅用于复制),但在设备处于非活动状态的正常情况下,通知点击也适用于其他应用程序。 我的 2 个应用程序都带有 onesignal,给出了同样的问题。

如果我能以任何可能的方式帮助你。 让我知道。

你好,
最可能的原因是,这是一小部分用户会遇到的非常特殊的边缘情况。

设置>系统>开发者选项>后台进程限制>无后台进程

大多数人甚至从未打开他们的开发人员选项,更不用说限制他们的后台进程了。 预计这样做可能会对某些设备环境产生残留的副作用。 如果您想按照上述 binchik 的建议实施“补丁”,我们鼓励您这样做。 如果您还有其他问题,请告诉我们。

@rgomezp
正如我所提到的,开发人员设置它只是为了重现问题。

如果没有开发人员设置或任何东西,只需尝试来自 OneSignal 的示例应用程序,就会出现同样的问题。

这不会发生在我设备上的任何其他应用程序中。

@rgomezp 有什么输入或帮助吗?

你好,
我不跟。 如果您需要开发人员设置来重现问题,那么如果没有设置,它怎么会出现同样的问题?

也许我错过了一些东西。

编辑:问题仍然存在
PS:没有电池优化或任何设置。 我在默认的 android 设置下运行。

当设备长时间空闲并收到通知时,解锁设备并单击通知没有任何反应。

我正在附上相同的屏幕录制以及我从 ADB logcat 过滤的错误。

录音链接:

https://onesignal.intercom-attachments-3.com/i/o/256430949/37d362816e15f5ba6e3932fb/VID-20201016-WA0047.mp4

ADB logcat 过滤错误:

10-16 19:15:03.341 1619 2958 D NotificationService:onNotificationClick:callingUid=10196 10-16 19:15:03.341 1619 2958 D DeviceIdleController:通知UID:1000 19:13 Alarmized 16 Alarmized 15 16 16 16 16 16 警报16 15侦听器 com.android.server。 f@bdf59f1

此问题也存在于示例文件夹中。

@rgomezp如果您需要更多信息,请告诉我。

@rgomezp你能看看上面的评论吗?

我也升级到 4.0 beta 进行检查,但问题仍然存在。

对于在 oneplus 设备上运行的用户来说,这是一个关键问题,我现在真的不想切换库。

请帮忙。 谢谢你。

@crushy26@binchik你们都能够在只有 OneSignal 处于活动状态的空白应用程序上重现这个吗?

除了 OneSignal 之外,您在应用程序中还使用了哪些其他依赖项?

@jfishman1

再次检查示例应用,问题仍然存在于运行 android 10 的 oneplus 设备上(其他制造商也可能存在,但我已经在 oneplus 8, 7T, 3, 3T 上进行了测试)

重现:

  1. 通过仪表板发送通知
  2. 点击前等待 10-15 分钟(将通知保持在通知托盘中)
  3. 点击通知,它不会打开应用程序

需要帮助请叫我。

@jfishman1 @rgomezp

问题似乎是无法识别警报管理器。

这是系统日志中的一段:

11-26 21:11:29.151 1716 4733 D NotificationService:onNotificationClick:callingUid=10196
11-26 21:11:29.151 1716 4733 D DeviceIdleController:通知UID:1000
11-26 21:11:29.151 1716 1836 W AlarmManager:无法识别的警报侦听器 com.android.server。 f@b869e3d
11-26 21:11:29.157 4990 4990 D NotificationListener: onNotificationRemoved# hash: 268132846
11-26 21:11:29.157 4990 4990 D NotificationListener: onNotificationRemoved# sbn: 231717922, package = com.hog.debug
11-26 21:11:29.158 4990 4990 D Launcher.Utilities: isNotificationBadging: 徽章: 1
11-26 21:11:29.158 4990 4990 D BubbleTextView:applyDotState cn = ComponentInfo{com.hog.debug/com.hog.MainActivity},动画 = true,wasDoted = true,isDoted = false,dotScale = 1.0,mDotInfo = null
11-26 21:11:29.158 4990 4990 D PopupDataProvider:onNotificationRemoved dotShouldBeRefreshed = PackageUserKey = com.hog.debug#0,containsDot = false
11-26 21:11:29.161 4990 4990 E neplus.launche:ID 0x00000090 无效。
11-26 21:11:29.167 2399 2399 D NotificationEntryMgr:删除数据,0|com.hog.debug|719030530|null|10505

以下是类似问题的一些解决方案,
https://visdap.blogspot.com/2019/04/android-notifications-triggered-by.html

你好,
谢谢你的信息。 我们会调查。

嗨@rgomezp

我想补充上述内容。
在没有任何开发人员设置的情况下,在默认的 android 设置下,OnePlus 设备似乎在从最近的应用程序中刷过应用程序一段时间后(大约 10 分钟后)杀死了该应用程序

这是 logcat 中的一行:

ActivityManager: Killing 13935:com.hog.debug/u0a570 (adj 905): empty #31

你好@crusy26
谢谢(你的)信息。 似乎这可能是与打盹模式相关的 OnePlus 特定行为。 不幸的是,在某些情况下,我们无法修复问题,因为它们是特定于操作系统级别的。 但是,我们正在深入研究您提供的链接,看看我们是否有任何可操作的方法来提供可行的解决方法。

谢谢你的耐心。
干杯

@rgomezp嘿,感谢支持。

奇怪的是,即使有诸如电池优化之类的操作系统级别的限制,但许多新的 Android 应用程序能够完美地执行此操作,而无需用户采取任何额外步骤,例如关闭电池优化等。这就是我的问题(此外,与 Facebook 等可能被供应商列入白名单的应用程序相比,供应商肯定不会将以下应用程序列入白名单,因为它目前是最新的小规模应用程序)

例子

例子2

不确定这两个应用程序是否都可以在您所在的国家/地区进行测试。

@rgomezp @emawby

我最近实现了 Freshchat 的 react-native SDK,它具有通知功能,可以让用户知道收到了新消息。

他们的 SDK 工作正常,上述问题不会持续存在。 通过向同一设备发送通知,并排比较 onesignal 和 freshchat 的通知。

Onesignal 通知未进入应用程序,而 freshchat 的通知在相同条件下进行

请在此处检查 sdk

@crushy26感谢您提供详细信息并尝试到目前为止的测试版,我有一些后续问题。

问题 1 - 您是否只在 OnePlus 设备上看到此问题?

问题 2 - 特别是在 OnePlus 设备上,此问题是否仅在更新到 Android 10 时才开始发生?

问题 3 - 点击通知并观察应用程序未打开的问题后,如果您发送新通知,它仍然显示吗?
如果是这样,点击新的应用程序是否可以正确打开应用程序?

评论 1 - OneSignal 的 Notification 打开过程不使用 AlarmManager
在 OneSignal 3.xx SDK 中打开的通知使用Broadcast来打开应用程序。 然而,在 OneSignal 4.xx SDK 中,这被切换为以Activity开头,这更直接,设备限制更少。 AlarmManager 不用作通知打开过程的一部分,因此有关此的日志条目似乎无关。

请回答上面的问题,我们可以在此之后更深入地研究这个问题。

@jkasten2

回答您的上述问题,

  1. 不确定这个问题在其他供应商上是否仍然存在,但我已经在 OnePlus 3、3T、6、8 和 Nord 上专门测试过这个问题……他们都有问题。
  2. 自 OnePlus 3 上的 Android 9 以来问题仍然存在
  3. 是的

今天测试了最新的beta SDK,问题仍然存在。

感谢您提供详细信息。 只有通知点击没有打开应用程序很奇怪,因为仍然收到新通知,这意味着应用程序没有被设备强行杀死。

如果您在任何其他设备、模拟器或 Android 版本上看到此问题,请告诉我们,以便我们缩小问题范围。
从我们的角度来看,我们可以考虑添加额外的日志记录并尝试在列出的设备之一上重现该问题。

@jkasten2 ,我在点击通知之前和之后粘贴 ADB 日志,以获取我已集成的新鲜聊天通知和来自 onesignal 的正常通知(活动被终止需要 10 分钟左右,在此之前一切正常)

FreshChat 的通知点击我用粗体突出显示。 就在它上面是onesignal的通知点击。

此外,在下方您可以看到活动正在被终止,这是造成 onesignal 问题的原因。 在此之前,一切正常。

日志还将帮助您弄清楚活动被终止后究竟发生了什么,以及 freshchat 为使其工作而采取的步骤。

PS:Freshchat 是一项客户支持服务,一旦我们的员工通过仪表板回复用户,它就会向用户发送通知

01-04 13:14:41.712 1625 1684 I ActivityManager: Killing 14104:com.hog.debug/u0a681 (adj 915): 删除任务
01-04 13:14:47.515 1625 5669 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.hog.debug/com.hog .MainActivity bnds=[235,356][438,710]} 来自 uid 10135 pid 5427
01-04 13:14:47.558 1625 1684 D OpRestartProcessManager:updateSelf:com.hog.debug,大小:30
01-04 13:14:47.597 1625 1702 I ActivityManager:为活动 {com.hog.debug/com.hog.MainActivity} 启动 proc 14106:com.hog.debug/u0a681
01-04 13:14:47.629 1625 2774 D OnePlusSmartBoostManager:writeHotCount com.hog.debug,pid=14106
01-04 13:14:47.633 1625 2774 D OpColorDisplayService:frontPackageChanged:com.hog.debug
01-04 13:14:47.634 1625 2774 D OpProximityController:noteFrontPackageChanged pkg:com.hog.debug uid:10681 lpkg:net.oneplus.launcher luid:10135
01-04 13:14:47.634 1625 2774 E ScreenModeService:getAppToken AppWindowToken{1d1d0ab token=Token{45ef2fa ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131}}}
01-04 13:14:47.634 1625 2774 E ScreenModeService: setRefreshRate token AppWindowToken{1d1d0ab token=Token{45ef2fa ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t130t}}Rmpate
01-04 13:14:47.635 1625 2774 D OpQuickReply:setQuickReplyResumedfocusedApp AppWindowToken{1d1d0ab token=Token{45ef2fa ActivityRecord{1a30125 u0 com.hog.debug/com.hog.hog.Maincom}p.1.
01-04 13:14:47.646 1625 5669 D Foreground_io:TOP_APP 是 ProcessRecord{7a9e577 14106:com.hog.debug/u0a681} uid 是 10681
01-04 13:14:53.362 1625 2266 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:14:53.733 1625 2266 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:15:20.771 1625 2975 W NotificationService:Toast 已被杀死。 pkg=com.hog.debug callback=android.app.ITransientNotification$Stub$Proxy@e3ceec1
01-04 13:15:23.833 1625 2772 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:15:23.835 1625 2772 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:15:24.015 1625 5025 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:15:24.018 1625 5025 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:15:26.510 1625 6049 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:15:26.511 1625 2969 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:15:28.014 1625 2969 I ActivityTaskManager:从 uid 10681 pid 14106 开始 u0 {cmp=com.hog.debug/com.freshchat.consumer.sdk.activity.InterstitialActivity(有额外的)}
01-04 13:15:28.033 1625 6049 I ActivityTaskManager:进程 com.hog.debug 已经存在于 BG 中。 所以发送它的PID:14106
01-04 13:15:28.035 1625 6049 E ScreenModeService:getAppToken AppWindowToken{762c1bb token=Token{867be4a ActivityRecord{88da7b5 u0 com.hog.debug/com.freshchat.consumer.sdk.activity}1
01-04 13:15:28.035 1625 6049 E ScreenModeService: setRefreshRate token AppWindowToken{762c1bb token=Token{867be4a ActivityRecord{88da7b5 u0 com.hog.debug/com.freshchat.consumer.rateIntershchat.consumer.sditkial} tmpRate 0
01-04 13:15:28.035 1625 6049 D OpQuickReply:setQuickReplyResumedfocusedApp AppWindowToken{762c1bb token=Token{867be4a ActivityRecord{88da7b5 u0 com.hog.debug/com.freshchats1kgtkialcomum. .hog.debug
01-04 13:15:28.053 1625 1684 D OpRestartProcessManager:updateSelf:com.hog.debug,大小:30
01-04 13:15:28.060 1625 2238 I ActivityTaskManager:从 uid 10681 pid 14106 开始 u0 {cmp=com.hog.debug/com.freshchat.consumer.sdk.activity.ChannelListActivity(有额外的)}
01-04 13:15:28.081 1625 1684 D OpRestartProcessManager:持续时间太短,忽略:com.hog.debug 中的 18
01-04 13:15:28.092 1625 1684 D OpRestartProcessManager:updateSelf:com.hog.debug,大小:30
01-04 13:15:28.092 1625 6049 I ActivityTaskManager:进程 com.hog.debug 已经存在于 BG 中。 所以发送它的PID:14106
01-04 13:15:28.094 1625 6049 E ScreenModeService:getAppToken AppWindowToken{534e1a1 token=Token{cc7608 ActivityRecord{5944dfa u0 com.hog.debug/com.freshchat.consumer.sdk}ActivityChannelList}t3ChannelList.activity.
01-04 13:15:28.094 1625 6049 E ScreenModeService:setRefreshRate token AppWindowToken{534e1a1 token=Token{cc7608 ActivityRecord{5944dfa u0 com.hog.debug/com.freshchat.consumer rate13tk}Channel rate13tk} tmpRate 0
01-04 13:15:28.094 1625 6049 D OpQuickReply:setQuickReplyResumedfocusedApp AppWindowToken{534e1a1 token=Token{cc7608 ActivityRecord{5944dfa u0 com.hog.debug/com.freshChannelNames1com. .hog.debug
01-04 13:15:28.237 1625 2975 I ActivityTaskManager:从 uid 10681 pid 14106 开始 u0 {cmp=com.hog.debug/com.freshchat.consumer.sdk.activity.ConversationDetailActivity(有额外的)}
01-04 13:15:28.239 1625 1684 D OpRestartProcessManager:持续时间太短,忽略:com.hog.debug 中的 147
01-04 13:15:28.254 1625 6049 I ActivityTaskManager:进程 com.hog.debug 已经存在于 BG 中。 所以发送它的PID:14106
01-04 13:15:28.255 1625 6049 E ScreenModeService:getAppToken AppWindowToken{e5dfe5f token=Token{4b536fe ActivityRecord{2ff82b9 u0 com.hog.debug/com.freshchat.consumer.sdk.Activity}1
01-04 13:15:28.256 1625 6049 E ScreenModeService: setRefreshRate token AppWindowToken{e5dfe5f token=Token{4b536fe ActivityRecord{2ff82b9 u0 com.hog.debug/com.freshchat.consumer.rateConsumer.sdation}Detail tmpRate 0
01-04 13:15:28.256 1625 6049 D OpQuickReply:setQuickReplyResumedfocusedApp AppWindowToken{e5dfe5f token=Token{4b536fe ActivityRecord{2ff82b9 u0 com.hog.debug/com.freshchats1kgcomm. .hog.debug
01-04 13:15:28.265 1625 1684 D OpRestartProcessManager:updateSelf:com.hog.debug,大小:30
01-04 13:15:28.999 1625 2238 V InputMethodManagerService:showSoftInput:package=com.hog.debug
01-04 13:15:31.720 1625 1684 D OpRestartProcessManager:updateSelf:com.hog.debug,大小:30
01-04 13:15:31.720 1625 5874 E ScreenModeService:getAppToken AppWindowToken{1d1d0ab token=Token{45ef2fa ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131}}}
01-04 13:15:31.720 1625 5874 E ScreenModeService:setRefreshRate token AppWindowToken{1d1d0ab token=Token{45ef2fa ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity rate t130t}}
01-04 13:15:31.720 1625 5874 D OpQuickReply:setQuickReplyResumedfocusedApp AppWindowToken{1d1d0ab token=Token{45ef2fa ActivityRecord{1a30125 u0 com.hog.debug/com.hog.hog.Maincom}t.1.
01-04 13:15:33.171 1625 5874 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:15:33.172 1625 5874 D ActivityTaskManager:将 ActivityRecord{1a30125 u0 com.hog.debug/com.hog.MainActivity t131} 设置为 1,来自 pid=14106,uid=106
01-04 13:15:34.459 1625 4923 D OpColorDisplayService:lpackageName:com.hog.debug
01-04 13:15:34.460 1625 4923 D OpProximityController:noteFrontPackageChanged pkg:net.oneplus.launcher uid:10135 lpkg:com.hog.debug luid:10681
01-04 13:15:34.598 1625 1684 I ActivityManager: Killing 14106:com.hog.debug/u0a681 (adj 915): 删除任务
01-04 13:15:34.717 1625 4923 I WindowManager: WIN DEATH: Window{ddd423b u0 com.hog.debug/com.hog.MainActivity}
01-04 13:16:16.230 1625 1702 I ActivityManager:启动 proc 15317:com.hog.debug/u0a681 广播 {com.hog.debug/com.onesignal.GcmBroadcastReceiver}
01-04 13:16:16.270 1625 2774 D OnePlusSmartBoostManager:writeHotCount com.hog.debug,pid=15317
01-04 13:16:19.002 1625 16475 D VibratorService:从“com.hog.debug”振动,usageHint = 5,token = android.os.Binder@2a59887
01-04 13:16:48.536 1625 2909 D OPBF:setCGroupState():tofreeze=true, uid:10681 pkg:com.hog.debug --->>> 好的原因:作为客户端发布服务添加连接 = AppBindRecord{bf96007 com.google.android.gms/.ads.identifier.service.AdvertisingIdService:com.hog.debug}
01-04 13:17:22.778 1625 2909 D OPBF:setCGroupState():tofreeze=false, uid:10681 pkg:com.hog.debug --->>> 好的原因:uid active tActive:true
01-04 13:17:38.657 1625 16546 D VibratorService:从“com.hog.debug”振动,usageHint = 6,token = android.os.Binder@2a59887
01-04 13:17:38.867 1625 1625 E NotificationService:静音最近嘈杂的 0|com.hog.debug|-1049021932|null|10681
01-04 13:19:27.475 1625 2909 D OPBF:setCGroupState():tofreeze=true, uid:10681 pkg:com.hog.debug --->>> 好的原因:传感器事件 tHold:false
01-04 13:22:29.956 1625 5665 I ActivityManager: Killing 15317:com.hog.debug/u0a681 (adj 999): empty #31
01-04 13:22:29.997 1625 2909 D OPBF:setCGroupState():tofreeze=false, uid:10681 pkg:com.hog.debug --->>> 好的原因:应用程序因 pid 15317 死亡
01-04 13:33:30.982 5427 5427 D 统计:Intent.getPackage() 为空。 因此尝试从 componentName.getPackageName() 获取包名:com.hog.debug
01-04 13:34:56.588 5427 5427 D NotificationListener: onNotificationRemoved# sbn: 35673602, package = com.hog.debug
01-04 13:34:56.599 2412 2412 D NotificationEntryMgr:删除数据,0|com.hog.debug|-1049021932|null|10681
01-04 13:34:59.802 5427 5427 D NotificationListener: onNotificationRemoved# sbn: 159738643, package = com.hog.debug
01-04 13:34:59.810 2412 2412 D NotificationEntryMgr:删除数据,0|com.hog.debug|250143270|null|10681
01-04 13:35:00.319 1625 2223 I ActivityTaskManager: START u0 {flg=0x4000000 cmp=com.hog.debug/com.freshchat.consumer.sdk.activity.ConversationDetailActivity (has extras)} from 1uid -pid 10616101-04 13:35:00.324 1625 2223 W ActivityTaskManager:从非活动上下文调用的 startActivity;
错误的01-04 13:35:00.353 1625 1684 D OpRestartProcessManager:updateSelf:com.hog.debug,大小:3001-04 13:35:00.374 1625 1702 I ActivityManager:为活动 {com.hog.debug/com.freshchat.consumer.sdk.activity.ConversationDetailActivity} 启动 proc 20400:com.hog.debug/u0a681
01-04 13:35:00.400 1625 5025 D OnePlusSmartBoostManager:writeHotCount com.hog.debug,pid=20400

@jkasten2 @rgomezp 有任何更新吗? 如果我们接近任何东西,请告诉我。

你好,
不幸的是还没有。 我们将不得不获得一个 OnePlus 设备来尝试复制。 感谢您的耐心等待。

@crushy26我们修复了一个 4.xx 回归问题,如果它试图在react-native-onesignal 4.0.4 中冷却它,则通知打开不会启动应用程序。 如果应用程序已经在后台运行,我们还进行了改进以恢复应用程序,就像 Android Launcher 一样。 它涉及更改 Intent 的创建方式,这也可能导致间接修复冷启动问题。

所以总而言之,我怀疑以下几点:

  • react-native-onesignal 3.x.x可能没有工作,因为它使用了Settings > system > developer options > background process limit > no background processes阻止的后台广播
  • 由于上述回归错误, react-native-onesignal版本 4.0.0 - 4.0.3 不起作用。

我确实在带有 OxygenOS 10.3.8 (Android 10)(内部版本号 A6013_34_210114)的 OnePlus 6T(型号 A6013)上测试了OneSignal-Android-SDK 4.2.0 ,但无法重现任何未解决的问题。

  • 但是,我没有像您指出的那样使用background process limit测试。

@crushy26你能试试新版本,如果你仍然看到这个问题,请告诉我们吗?

@jkasten2

谢谢你的时间。 我检查了 4.0.4 并尝试了所有可能的情况。 现在,一切似乎都在工作!

一旦在 Beta 版中与我们的用户进行彻底测试,我将在接下来的 3 天内确认。

高兴听到

如果您想重新打开问题,请告诉我们

此页面是否有帮助?
0 / 5 - 0 等级