当我的应用从通知启动时,我想打开一个合适的屏幕。我找到了一个不按预期工作的方案。
所以这是第一个可行的方案:
onNewIntent
默认活动。但是,当首次从FCM通知启动应用程序时,步骤4.永远不会发生:
onNewIntent
默认活动未收到 我发现使用和编写代码确实存在问题。这是一个错误还是我错过了什么?
编辑:清单文件中的默认活动launchMode
设置为singleTask
。
答案 0 :(得分:0)
参考上一个答案,onNewIntent被调用用于将launchMode设置为" singleTop"的活动。
首先,您应该设置清单文件。将活动的launchMode设置为 singleTop 。另一件事是添加一个带有动作标签的intent过滤器。
样品:
<activity android:name="youPackage.YourActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="youPackage.ACTION">
</intent-filter>
</activity>
并且,在您的服务中,您可以根据在intent-filter中定义的操作调用新意图。
样品:
Intent i = new Intent("youPackage.ACTION");
参考:
答案 1 :(得分:0)
确保在启动器活动中覆盖onNewIntent。就我而言,这是启动屏幕。
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent.getExtras() != null) {
for (String key : intent.getExtras().keySet()) {
Object value = intent.getExtras().get(key);
Log.d("data ", "Key: " + key + " Value: " + value);
}
}
}