博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
想要在launcher中模拟按home键。
阅读量:7178 次
发布时间:2019-06-29

本文共 957 字,大约阅读时间需要 3 分钟。

 

 

 

Intent mHomeIntent = new Intent(Intent.ACTION_MAIN);          mHomeIntent.addCategory(Intent.CATEGORY_HOME);          mHomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK                          | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);          getApplicationContext().startActivity(mHomeIntent);   // 要用getApplicationContext
 
Android中,如果想把stack中的某个Activity moveTaskToFront,可以定义一个BroadcastReceiver接收某种类型的Broadcast,并在onReceive中start该Activity。但是需要注意的是,startActivity前面的context参数问题。
android的activity中不能使用startAcitivity来将自己提前到stack的前面,所以这个onReceive中的startActivity的context不能是Activity。
另外如果该BroadcastReceiver是动态注册的(dynamic register),此时在onReceive中传入的context的参数就是这个Activity,也不能使用。
对付上面这个问题比较有效的办法,就是不要直接使用这个context,而是使用context.getApplicationContext(),这样就可以实现moveTaskToFront了。
与moveTaskToFront相对应的是moveTaskToBack,这个相对比较简单,Activity已经提供了moveTaskToBack方法。当时需要注意的是,一旦调用这个方法,该Activity所在的task将会被整体搬迁到stack的最底端,需要特别注意。

转载于:https://www.cnblogs.com/lipeineng/p/6842594.html

你可能感兴趣的文章
ora-01031和ORA-01994错误
查看>>
oracle 12C RAC 集群日志(cluster log)目录
查看>>
设计模式中的6大设计原则
查看>>
C++编写的QQ木马源码
查看>>
android插件化-apkplugdemo源码阅读指南-10
查看>>
人工智能假如失控 将会带来何种危害程度?
查看>>
个推基于 Apache Pulsar 的优先级队列方案
查看>>
高质量链接
查看>>
设计模式
查看>>
webView 加载页面的两种请求方式: get 和 post
查看>>
Block原理 - block是怎么修改外部变量的值
查看>>
Vue学习-简单介绍
查看>>
雷军微博拧螺丝CFO为粉丝数发愁
查看>>
检测网页是否正常打开
查看>>
cms系统视频分享
查看>>
Generator流程控制实例
查看>>
微信小程序工具篇
查看>>
java 通过网络唤醒实现远程开机
查看>>
MySQL执行update 语句忘加where条件后使用mysqlbinlog搭配sed命令完美还原
查看>>
Eclipse下svn创建分支/合并/切换使用
查看>>