前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >启动App的Intent

启动App的Intent

作者头像
用户1172465
发布2018-01-05 17:37:46
6660
发布2018-01-05 17:37:46
举报
文章被收录于专栏:everhadeverhad

类似桌面图标打开App的Intent

程序中需要一种通知,点击后的效果需要像点击桌面图标那样:

  • 程序在前台就什么也不干。
  • 程序在后台,就切换到前台。
  • 程序未启动,就启动程序。

点击通知后,通知本身跳转到Receiver,然后onReceive方法里面处理通知的跳转intent,startActivity使用onReceive的context或者Application都行。 创建打开app的intent,自己尝试了一些写法有点bug——多次打开app——偶然性,而且不稳定? 最终从 launcher的源码中找到了系统桌面图标的点击打开app使用的Intent:

代码语言:javascript
复制
ComponentName className = new ComponentName(packageName, activityName);
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setComponent(className);
int launchFlags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED;
intent.setFlags(launchFlags);

注意: 上面最关键的是launchFlags,可以避免多次启动程序:也就是程序已经启动了,在后台,然后点击通知后又闪出启动页面。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类似桌面图标打开App的Intent
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档