Android launcher中模拟按home键的实现
作者:lqh 时间:2023-03-25 02:33:48
Android launcher中模拟按home键的实现
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的最底端,需要特别注意。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://www.cnblogs.com/lipeineng/p/6842594.html
标签:launcher,home键
0
投稿
猜你喜欢
浅谈Java基准性能测试之JMH
2023-01-25 13:17:40
Java图形用户界面设计(Swing)的介绍
2022-08-23 03:29:37
java 数据结构之删除链表中的元素实例代码
2022-03-28 00:51:11
关于MyBatis中Mapper XML热加载优化
2023-05-20 01:49:34
Java实现员工管理系统
2023-04-10 23:44:44
IntelliJ IDEA 15款超级牛逼插件推荐(自用,超级牛逼)
2023-10-10 05:51:22
springboot以FTP方式上传文件到远程服务器
2022-10-13 06:19:27
Idea打包springboot项目没有.original文件解决方案
2022-07-12 20:06:08
C# 7.0中解构功能详解
2022-08-11 21:06:34
java读取文件内容的三种方法代码片断分享(java文件操作)
2023-11-21 06:53:20
C#实现的阴历阳历互相转化类实例
2021-12-24 06:41:39
c# 用Dictionary实现日志数据批量插入
2022-05-29 02:01:45
详解netty中的frame解码器
2022-02-22 14:40:21
C#实现将网址生成二维码图片方法介绍
2022-08-14 02:31:49
java中对字符串每个字符统计的方法
2023-09-23 13:53:16
Android中Splash应用启动白屏问题的解决方法
2022-08-25 14:24:33
一篇文章带你了解Java Stream流
2022-11-05 10:26:18
java图形用户界面实现菜单功能
2023-11-23 11:50:58
SpringCloud-Alibaba-Nacos启动失败解决方案
2023-12-19 05:34:45
Android中Activity的四种启动模式和onNewIntent()
2022-09-05 23:15:02