android如何在activity中启动同一activity并finish自己
问题是这样的,假如在acitivityA中startActivityB,同时调用A.finish(),是正常的,栈中只有一个B。但是,如果在acitivityA中star...
问题是这样的,假如在acitivity A中startActivity B,同时调用A.finish(),是正常的,栈中只有一个B。
但是,如果在acitivity A中startActivity A(同一activity),同时调用A finish(),发现原来的A是不finish的,栈中有两个A。这是为什么呢?
这个问题已经解决了:在我的应用中,A是一个搜索Activity,是通过点击键盘的“搜索”键并侦听onKeyListener进入的,这种方法有错误,会一下打开两个Activity,所以栈中会出现连个A。应该侦听TextView.OnEditorActionListener. 展开
但是,如果在acitivity A中startActivity A(同一activity),同时调用A finish(),发现原来的A是不finish的,栈中有两个A。这是为什么呢?
这个问题已经解决了:在我的应用中,A是一个搜索Activity,是通过点击键盘的“搜索”键并侦听onKeyListener进入的,这种方法有错误,会一下打开两个Activity,所以栈中会出现连个A。应该侦听TextView.OnEditorActionListener. 展开
1个回答
2016-05-05 · 知道合伙人软件行家
关注
展开全部
Activity启动模式有4种,分别为standard、singleTop、singleTask、singleInstance。
1.standard 默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。
2.singleTop 可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
3.singleTask 只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉并调用它的onNewIntent方法。
4.singleInstance只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。
1.standard 默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。
2.singleTop 可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
3.singleTask 只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉并调用它的onNewIntent方法。
4.singleInstance只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。
更多追问追答
追问
我的activity是standard的,问的是这种情况下的表现为什么是这样的。
追答
默认的话,你每次startActivity,android都会创建一个新的activity
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询