两个activity finsh的问题

a跳转到b了,然后b里面使用了finsh();,这个时候会回到a,这个时候我想对a进行一些操作,请问我写在a的那个函数里面

3.Activity运作流程
(1)第一次启动Activity A

首先调用onCreate()方法创建Activity进入停止状态 -> 调用onStart()方法进入暂停状态 -> 调用onResume()方法进入激活状态;
(2)从Activity A 跳转到 Activity B
A先执行onPause()方法进入暂停状态 -> B执行onCreate()方法进入停止状态 -> B执行onStart()方法进入暂停状态 -> B执行onResume()方法进入激活状态 -> A被完全覆盖执行onStop()方法进入停止状态;
(3)从ActivityB 回到 Activity A
B执行onPause()方法进入暂停状态 -> A调用onRestart()方法进入停止状态 -> A调用onStart()方法进入暂停状态 -> A调用onResume()方法进入激活状态 -> B被覆盖调用onStop()方法进入停止状态 -> B执行onDestroy()方法销毁
这里注意Activity的栈是不可逆的 , 只能后退 , 不能前进 , 回退后 , 原来的栈顶的Activity就马上销毁了.

如果是普通的跳转,你可以在a的onResume中处理
如果你是startActivityForResult的话,b的finish之前,调用一下setResult(Result.Ok,intent);
你可以通过intent传递一些数据给a,在a中重载onActivityResult来接受

可以定义 BroadCast 消息来处理,B 退出前先 BroadCast 通知 A。

 startActivityForResult
setResult

这两个方法好好研究研究就行了。

你这样靠b活动finish后回到a的处理本身就不安全!

不觉得这时候a有可能会被系统回收吗?

正确的是要再次调a,如果需要a能恢复之前的状态,并对它进行一些操作的话,可以用onCreate方法的参数