【移动推送】Android SDK中推送通知打开指定Activity时如何操作?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【移动推送】Android SDK中推送通知打开指定Activity时如何操作?

来自:云原生应用研发平台EMAS 2022-09-15 15:12:11 85 1

【移动推送】Android SDK中推送通知打开指定Activity时如何操作?

取消 提交回答
全部回答(1)
  • EMAS支持组
    2022-09-15 15:59:54
    已采纳

    打开指定Activity主要有两种方式。

    1、使用SDK打开Activity移动推送Android SDK是支持打开Activity功能的,此时只需要在推送时指定通知的打开方式即可。相关OpenApi代码可参考:

    PushRequest pushRequest = new PushRequest();
    // 其余设置省略...
    pushRequest.setPushType("NOTICE");
    pushRequest.setAndroidOpenType("ACTIVITY"); //点击通知后动作 "APPLICATION" : 打开应用 "ACTIVITY" : 打开AndroidActivity "URL" : 打开URL "NONE" : 无跳转
    pushRequest.setAndroidActivity("您需要打开的界面");
    

    2、 自行打开Activity如果SDK自带的打开activity功能无法满足您的需求,您可以在通知点击回调中自行完成activity跳转逻辑,可参考如下方案。首先,将通知点击动作设置为NONE:

    PushRequest pushRequest = new PushRequest();
    // 其余设置省略...
    pushRequest.setPushType("NOTICE");
    pushRequest.setAndroidOpenType("NONE"); //点击通知后动作 "APPLICATION" : 打开应用 "ACTIVITY" : 打开AndroidActivity "URL" : 打开URL "NONE" : 无跳转
    

    然后在通知点击回调onNotificationOpened中完成activity跳转逻辑:

     @Override
     public void onNotificationOpened(Context context, String title, String summary, String extraMap) {
     Log.e("MyMessageReceiver", "onNotificationOpened, title: " + title + ", summary: " + summary + ", extraMap:" + extraMap);
     ...
     Intent intent = new Intent(context,"您需要打开的界面");
     ....
     intent.putExtra("title",title);
     intent.putExtra("summary",summary);
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     context.startActivity(intent);
     }
    

    注意:由于BroadcastReceiver中获取到的Context不是ActivityContenxt而是ApplicationContext,所以无法直接打开activity,而需要将对应intent设置为Intent.FLAG_ACTIVITY_NEW_TASK才行。


    更多官方信息

    EMAS官网介绍:https://www.aliyun.com/product/emas

    Devops:https://www.aliyun.com/product/emascrash/mobile_devops

    移动热修复:https://www.aliyun.com/product/hotfix

    移动测试:https://www.aliyun.com/activity/emas/mqcexpert

    移动推送:https://www.aliyun.com/product/cps

    HTTPDNS:https://www.aliyun.com/product/httpdns

    EMAS 控制台: https://emas.console.aliyun.com/products

    0 0
相关问答

1

回答

移动推送Android SDK:我注册成功了,但是收不到推送的消息,我该如何去排查?

2017-12-29 00:37:58 803浏览量 回答数 1

2

回答

android 8.0 移动推送的消息接收不到

2017-12-13 14:09:02 7271浏览量 回答数 2

0

回答

移动推送Android SDK:为什么Android推送的到达率比iOS低很多?

2017-10-24 09:30:19 1506浏览量 回答数 0

1

回答

移动推送Android SDK:推送的角标自增需要特殊设置吗?

2017-10-23 14:23:31 1972浏览量 回答数 1

0

回答

移动推送Android SDK: 移动推送在应用中的调用绑定和解绑应用场景在哪里?

2017-10-23 14:23:07 1743浏览量 回答数 0

0

回答

移动推送Android SDK:Android辅助通道和弹窗排查步骤

2017-10-23 14:22:20 1866浏览量 回答数 0

0

回答

移动推送Android SDK:推送通知打开指定Activity时如何操作?

2017-10-23 14:21:08 1283浏览量 回答数 0

0

回答

Android移动推送的在线通知(或消息)和离线通知(或消息)有什么区别?

2017-10-23 14:20:18 2145浏览量 回答数 0

0

回答

移动推送Android SDK:为什么Android推送的到达率比iOS低很多是为什么?

2017-10-23 14:19:54 1628浏览量 回答数 0

0

回答

移动推送Android SDK:在通知回调中无法打开activity,这是怎么回事?

2017-10-23 14:17:21 1300浏览量 回答数 0
文章
问答
来源圈子
更多
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
+ 订阅
相关文档: 移动研发平台EMAS
问答排行榜
最热
最新
相关电子书
更多
《深入探索Android热修复技术原理》
立即下载
Android热修复技术原理详解与升级探索
立即下载
Android内存泄漏自动化链路分析组件Probe
立即下载