Android开发,从一个Activity跳转到另一个Activity,销毁前一个Activity怎么实现好

AaronPasi 2016-02-09 11:31:51
本人安卓小白一枚,最近在学习。遇到的问题是从一个Activity跳转到另一个Activity,有时候要销毁前一个Activity,我自己是用getParent(),然后finish(),可是这样处理,跳转的时候就会出现短暂黑屏的现象,所以我觉得这样应该不是好的解决方法,可是我也不大懂其他的处理方法,或者出现黑屏的原因,有没有哪位大神能为我解答下,感激不尽。然后大家新年快乐哈
...全文
11692 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
红眼睛11 2017-09-07
  • 打赏
  • 举报
回复
开玩笑一样,使用activity的静态对象这种方法这么烂也能采用。这不扯淡呢。这么大一个activity存成静态对象让所有人用。 查栈关闭或者广播关闭等等才是正解
xingliuyang 2017-03-27
  • 打赏
  • 举报
回复
采用了8楼的想法
RobinLoveRock 2016-06-28
  • 打赏
  • 举报
回复 1
如果想在B_Activity中销毁A_Activity,利用反射的方式是其中的一种简易靠谱的方法。懒得叙述,我直接把我写的代码粘上去,以下是写在Application类里面的,需要用的直接复制到你自己的application类里面就行: private ArrayList<Activity> listOfActivity = new ArrayList<Activity>(); public void addActivity(Activity a){ listOfActivity.add(a); } public void killActivity(Class<?> cls){ for (int i = 0; i < listOfActivity.size(); i++) { Activity activity = listOfActivity.get(i); if (activity.getClass().equals(cls)) { activity.finish(); } } 这样,无论你想销毁谁,只要在想要被销毁的类中的oncreate里面调用方法addActivity,然后一旦调用方法killActivity,传入某类.class作为参数,就能销毁该类。
YAOWENXIAO 2016-04-15
  • 打赏
  • 举报
回复
楼上的回答是最简单实用的,赞赞赞
  • 打赏
  • 举报
回复 1
这么简单的一个问题被你们搞一堆东西出来; this.startActivity(new Intent(this, LoginActivity.class)); this.finish();
索吻的贼 2016-03-01
  • 打赏
  • 举报
回复
方法应该有很多吧,eventbus好像是可以的,广播是可以得,自己写个反射是可以的,定义个activity list,通过类名查找是可以的是可以的
隔壁阿瓜 2016-03-01
  • 打赏
  • 举报
回复
同意前面说的,在你要调用finish()时,用A的静态对象去调用这个方法,就销毁了。
qq_32177011 2016-03-01
  • 打赏
  • 举报
回复
我来学习你们怎么说
xingzhong128 2016-03-01
  • 打赏
  • 举报
回复
在A activity的onStop 方法里调用finish 不会有黑屏的问题 因为两个activity启动时调用顺序: A.pause->B.start->A.stop
天涯泪小武 2016-03-01
  • 打赏
  • 举报
回复
看来你不知道有个东西叫eventbus
AaronPasi 2016-02-22
  • 打赏
  • 举报
回复
谢谢大家的回复 我也只是菜鸟 在学习中 看了回复 受益匪浅…
gouphigh2 2016-02-22
  • 打赏
  • 举报
回复
如果关闭不当,容易造成Activity引用一直存在无法回收,导致内存泄漏。可以从设计层面改变思路。可否详述你的需求
qq_26089797 2016-02-22
  • 打赏
  • 举报
回复
Handler发消息处理
AaronPasi 2016-02-22
  • 打赏
  • 举报
回复
采用了八楼的方法 谢谢其他的同志们
AaronPasi 2016-02-22
  • 打赏
  • 举报
回复
引用 8 楼 fighting__fighting的回复:
您的意思是在第二个activity中悄无声息的关闭第一个activity是吧? 这样可以实现: 在A里面设置一个静态的变量instance,初始化为this 在B里面,A.instance.finish();
已经采用了 简单实用 好方法 跪谢啊
wangyang0805 2016-02-22
  • 打赏
  • 举报
回复
使用hander 发送消息,或者使用广播
画虎烂 2016-02-20
  • 打赏
  • 举报
回复
A启动B,在A启动B的语句直接调用finish
parv2 2016-02-19
  • 打赏
  • 举报
回复
销毁 Activity 开销太大, 我 多是 1 Activity + 多个 setContentView( View ); 如果几个View 需要经常来回来去换的话,这么写 比较合适
图灵转世 2016-02-19
  • 打赏
  • 举报
回复
用广播吧,我看行。
xxxxxxxxxxxczxc 2016-02-19
  • 打赏
  • 举报
回复
跳转前就销毁啊
加载更多回复(13)

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧