88程序锁的BUG(界面启动混乱)修复(利用Activity的启动方式[四种])

在手机管家中,当进入高级工具并按下小房子进入桌面的时候,点击加锁的程序,输入密码,本来想输入密码后,进入加锁的程序,结果,进入到了手机管家的高级工具界面,很奇怪!(界面启用混乱)

实际上,是因为每个程序都有他自己的任务栈,每个Activity启动的时候入栈,处于栈顶。手机管家的输入密码的Activity和他的其他Activity在同一个任务栈中,如果栈底不是输入密码的Activity,当输入密码的Activity调用finish后,他出栈了,那么此时栈顶有其他的Activity,于是显示了手机管家的其他界面。一句话,就是输入密码所在的任务栈不在要启动的程序的任务栈中。

解决方法:指定Activity的启动模式

android:launchMode="singleInstance"

关于Activity的启用模式,郭霖的第一行代码讲的很清楚。

时间: 2024-10-11 17:29:23

88程序锁的BUG(界面启动混乱)修复(利用Activity的启动方式[四种])的相关文章

从源码角度看一个apk的启动过程和一个activity的启动过程

APK程序的运行过程 首先,ActivityThread从main()函数中开始执行,调用prepareMainLooper()为UI线程创建一个消息队列(MessageQueue). 然后创建一个ActivityThread对象,在ActivityThread的初始化代码中会创建一个H(Handler)对象和一个ApplicationThread(Binder)对象.其中Binder负责接收远程AmS的IPC调用,接收到调用后,则通过Handler把消息发送到消息队列,UI主线程会异步地从消息

Activity中的四种启动模式

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: [html] view plaincopy Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" 

转 Activity的四种启动模式和onNewIntent()

转自 http://blog.csdn.net/linghu_java/article/details/17266603 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" a

Android之Activity系列总结(三)--Activity的四种启动模式

一.返回栈简介 任务是指在执行特定作业时与用户交互的一系列 Activity. 这些 Activity 按照各自的打开顺序排列在堆栈(即返回栈,也叫任务栈)中. 首先介绍一下任务栈: (1)程序打开时就创建了一个任务栈, 用于存储当前程序的activity,所有的activity属于一个任务栈. (2)一个任务栈包含了一个activity的集合, 去有序的选择哪一个activity和用户进行交互:只有在任务栈栈顶的activity才可以跟用户进行交互. (3)任务栈可以移动到后台, 并且保留了每

详解Activity的四种启动模式

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Activity启动模式设置:<activity android:name=".MainActivity" android:launchMode="standard" /> Android总Activity的启动模式分为四种: Activity的四种启动模式:

Android--Activity四种启动模式

launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里.这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task. Activity一共有以下四种launchMode: 1.standard 2.singleTop 3.singleTask 4.single

activity的四种启动模式

activity的启动模式也叫launchMode,一共有以下四种: 1.standard 2.singleTop 3.singleTask 4.singleInstance 启动设置在<activity android:launchMode:"xxx">中设置,默认为standard standard:当启动或者跳转到activity1时,它就会无限启动.不管该活动在栈中甚至栈顶是否存在 singleTop:当启动目标在栈顶时就不再启动新的目标,但是不在栈顶就会启动新的活

Android技术7:Activity的启动模式

1.Activity启动模式 在Android系统中,Activity的四种启动模式 standard(默认) singleTop singleTask singleInstance 该四种启动模式在AndroidManifest.xml中配置每一activity中参数设置android:launchMode 2.模式特征 standard:该模式下,每次通过通过Intent启动时,都会生成一个新的实例.android:launchMode 没有配置下,默认为standard. singleTo

练手小项目(5)安全卫士_程序锁bug修复一

程序锁的基本功能,已经实现了,但是你如果输入密码进入 APP以后,看门狗,还是监听你想进入的APP,这时候又会出现一个输入密码的界面. 我先说一下思路. ①思路 1.通过发送自定义广播在服务里面,监控多一个判断如果是临时取消保护的程序就不再启动程序锁 ,这时候,我们要解决的就是什么时候再让他启动监听呢,答案就是 锁屏的时候. 2.通过锁屏将零时保护值设为空就可以继续保护了 但是bug 还是有 那就不停的安返回键 取消 输入密码界面,可以慢慢把界面内容看完,怎么解决呢 解决方案的是: 3. 如果在