Android(安卓)在APP存活或者被杀死情况下,点击通知栏打开指定Activity
16lz
2021-01-26
在收到推送通知后,点击通知栏要打开APP的指定页面,是Andorid中的一个常见功能。
1、若APP存活,很简单,直接在通知栏的点击监听中启动对应Activity即可:
@Override public void dealWithCustomAction(Context context, UMessage uMessage) { context.startActivity(new Intent(context, ProductDetail.class)); }
由于项目中我集成的是友盟推送,所以示例代码中可以看到“UMessage”字样。通过什么方式集成推送模块不重要,通知中携带的数据都可以从类似于“Message”的对象中取出来。
2、若APP被杀死,要将通知到携带的Message传递到APP启动后的首个Activity中,然后一步步传递到MainActivity中,再根据Message中的数据不同,处理业务逻辑并跳转到对应的Activity中即可。
@Override public void dealWithCustomAction(Context context, UMessage uMessage) { if (Utils.isProessRunning(context, "com.company.test")) { context.startActivity(new Intent(context, ProductDetail.class)); }else{ //将通知携带的数据一步步传递到MainActivity Intent intentNotification = new Intent(context, SplashActivity.class); intentNotification.putExtra("uMessage", uMessage); context.startActivity(intentNotification); } } }
判断进程是否存活的方法:
/** * 判断进程是否存活 * * @param context * @param proessName * @return */ public static boolean isProessRunning(Context context, String proessName) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List lists = am.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo info : lists) { if (info.processName.equals(proessName)) { return true; } } return false; }
3、补充:判断服务是否存活的方法
/** * 判断服务是否运行 * * @param context * @param serviceName * @return */ public static boolean isServiceRunning(Context context, String serviceName) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List lists = am.getRunningServices(30); for (ActivityManager.RunningServiceInfo info : lists) {//判断服务 if (info.service.getClassName().equals(serviceName)) { return true; } } return false; }
4、补充
若需判断Activity页面是否在前台,通过监听onResume()和onPause()即可。
更多相关文章
- Android(安卓)SimpleDateFormat 日期时间格式 系统设置12_24小时
- Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)
- android 设置闹钟及通知
- Android的3种Notification实现方式详解
- android获取应用信息,判断应用来源,监听应用的安装和卸载
- Android(安卓)7.0的新特性
- Android(安卓)---Check System Version at Runtime(在软件运行时
- android NotificationCompat.Builder 使用
- android 在分享时判断是否安装QQ,微信客户端