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方法的参数