社区
Android
帖子详情
启动一个新的activity的时候怎么把当前task之前的activity都干掉?
Megaderma
2011-11-03 03:10:14
比如当期的task栈是A-》B-》C
C activity在最上端,这个时候我从C startActivity到D,
我要求这个时候A B C都被干掉,只剩下D,请问需要加什么flag??
谢谢!
...全文
329
14
打赏
收藏
启动一个新的activity的时候怎么把当前task之前的activity都干掉?
比如当期的task栈是A-》B-》C C activity在最上端,这个时候我从C startActivity到D, 我要求这个时候A B C都被干掉,只剩下D,请问需要加什么flag?? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Hinagi
2011-11-04
打赏
举报
回复
BroadcastReceiver
jdpxiaoming
2011-11-04
打赏
举报
回复
你说的 功能是不是 杀死全部的 activity 这样有一个方法可以 满足你 就是 自己建一个 BaseActivity
然后其它的activity 都 继承 BaseActivity 这样做的好处是
当你要退出系统的时候只要 杀死 BaseActivity 就可以直接退出整个程序。
zenglingyou
2011-11-04
打赏
举报
回复
public class ScreenManager {
private static Stack activityStack;
private static ScreenManager instance;
private ScreenManager(){
}
public static ScreenManager getScreenManager(){
instance=new ScreenManager();
}
return instance;
}
//退出栈顶Activity
public void popActivity(Activity activity){
activity.finish();
activityStack.remove(activity);
activity=null;
}
}
//获得当前栈顶Activity
public Activity currentActivity(){
Activity activity=activityStack.lastElement();
return activity;
}
//将当前Activity推入栈中
public void pushActivity(Activity activity){
activityStack=new Stack();
}
activityStack.add(activity);
}
//退出栈中所有Activity
public void popAllActivityExceptOne(Class cls){
while(true){
Activity activity=currentActivity();
break;
}
break;
}
popActivity(activity);
}
}
}
Megaderma
2011-11-04
打赏
举报
回复
结贴,我已经做好了和11楼的方法类似。
Megaderma
2011-11-03
打赏
举报
回复
有这个需求啊。不仅要被盖住,而且要被destroy掉,这样在D上按返回键就直接退出程序了。
不要C B A依次都要按一次返回键。
[Quote=引用 8 楼 chievement 的回复:]
这个把他干掉干什么呢,你打开一个activity之前的窗口不是干掉的吗?虽然你关闭当前的activity,还会出现,但是能保证你之前的activity都不会显示啊,如果要干掉的话就finish(),destroy()
[/Quote]
chievement
2011-11-03
打赏
举报
回复
是OnDestroy()
chievement
2011-11-03
打赏
举报
回复
这个把他干掉干什么呢,你打开一个activity之前的窗口不是干掉的吗?虽然你关闭当前的activity,还会出现,但是能保证你之前的activity都不会显示啊,如果要干掉的话就finish(),destroy()
Megaderma
2011-11-03
打赏
举报
回复
难道我要记忆住A B C的对象?
不然怎么调用他们的finish?
Android这里做得很蹩脚啊
[Quote=引用 6 楼 sasonsoft 的回复:]
试试调用A、B、C的finish()方法。。。
[/Quote]
SasONsoft
2011-11-03
打赏
举报
回复
试试调用A、B、C的finish()方法。。。
Megaderma
2011-11-03
打赏
举报
回复
继续寻高手
阿汤哥已被占用
2011-11-03
打赏
举报
回复
坐等高手
阿汤哥已被占用
2011-11-03
打赏
举报
回复
[Quote=引用 1 楼 cengjingzuiai 的回复:]
Intent.FLAG_ACTIVITY_CLEAR_TOP
[/Quote]
扯吧,這個FLAG意思是 ABCD D->B 變成AB
目標Activity已在棧中存在,將會把位於改目標activity之上的activity從棧中彈出。
Megaderma
2011-11-03
打赏
举报
回复
兄弟,这个不行。FLAG_ACTIVITY_CLEAR_TOP的意思如果A->B->C,要再次启动A或者B的时候才有用。
[Quote=引用 1 楼 cengjingzuiai 的回复:]
Intent.FLAG_ACTIVITY_CLEAR_TOP
[/Quote]
Aicmm
2011-11-03
打赏
举报
回复
Intent.FLAG_ACTIVITY_CLEAR_TOP
Activity
的
启动
与销毁,
Activity
之间跳转与传输数据
当
一个
应用中有多个
Activity
时,就要涉及到
Activity
之间的跳转(即
一个
Activity
启动
跳转到另外
一个
Activity
)、当返回上
一个
界面时,涉及到
Activity
的销毁(有可能只是销毁
当前
这
一个
Activity
,也有可能销毁多个...
android开发销毁
之前
的
activity
在开发的时候,完成一系列的操作后总是有好多
activity
没有及时处理掉,所以要
一个
个去销毁,所以下面的代码可以很快的解决这问题 1、使用Intent的FLAG_
ACTIVITY
_CLEAR_
TASK
标记,这个标记可以清空要
启动
的...
【Android 12】
Activity
启动
模式
一、
启动
模式 google文档的介绍: 您可以通过
启动
模式定义 ...当您调用 start
Activity
()时,可以在 Intent中添加
一个
标记,用于声明
新
Activity
如何(或是否)与
当前
Task
相关联。 因此,如果
Activity
A
启动
A
Activity
任务栈的管理 -----销毁前
一个
相同的
activity
(还有一种简单的方法实现)
思路:(在每次创建
当前
Activity
的时候销毁前部的
activity
即可,然后在添加
当前
activity
的引用)编写
Activity
Management的界面控制管理器package com.lzyc.ybtappcal.app;import android.support.v4.app.FragmentAc
巧用Android
启动
模式之single
Task
,一步销毁多个
Activity
此时,已经存在了十几个
Activity
,我们如何一下子把这些
Activity
销毁,就是
当前
的问题。 有如下几种方法可以解决: (1)最经典的就是在application中记录下这些
activity
,除了首页
activity
,其他循环销毁。
Android
80,471
社区成员
91,384
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章