You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

应用关闭状态下点击推送通知能否获取通知值?附当前实现代码

应用关闭时点击推送通知获取参数的解决方案

能获取到对应的值。你当前实现的onNewIntent方法仅在应用处于前台或后台(未完全关闭)时生效,当应用完全关闭时,点击推送通知会重新启动应用,这时候需要在onCreate方法中处理启动Intent携带的参数。

解决步骤:

  • 提取公共处理逻辑:把参数解析和WebView加载的逻辑抽成公共方法,避免代码重复
  • 在onCreate中处理启动Intent:应用关闭后启动时,通过getIntent()获取推送携带的参数
  • 优化onNewIntent:更新当前Intent并复用公共方法,确保后台唤醒时参数正确

示例代码:

// 公共方法:处理Intent参数并加载WebView
private void handleIntent(Intent intent) {
    if (intent != null && intent.hasExtra("url")) {
        url = intent.getStringExtra("url");
    }
    LoadWebview();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_activity_layout);
    // 处理应用启动时的Intent参数(适用于应用关闭后点击推送的场景)
    handleIntent(getIntent());
}

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    // 更新当前Activity的Intent,避免后续getIntent获取旧数据
    setIntent(intent);
    // 复用公共方法处理参数(适用于应用后台时点击推送的场景)
    handleIntent(intent);
}

额外注意事项:

  • 确保推送通知的PendingIntent设置了合适的Flag,比如FLAG_UPDATE_CURRENT或FLAG_IMMUTABLE(Android 12及以上推荐使用FLAG_IMMUTABLE),保证参数能正确传递到启动的Activity。
  • 若当前Activity是Launcher Activity,建议将其launchMode设置为singleTop或singleTask,避免重复创建Activity实例,同时确保Intent参数能正确传递。

内容的提问来源于stack exchange,提问作者Nanju K S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:32:10