activity调用finish方法理解
来源:互联网 发布:织梦cms视频安装教程 编辑:程序博客网 时间:2024/05/21 10:07
/** * Call this when your activity is done and should be closed. The * ActivityResult is propagated back to whoever launched you via * onActivityResult().
* 翻译下:当activity执行完毕并且应该关闭的时候,调用此方法。
* 这个ActivityResult马上会返回给调用这个activity的onActivityResult()方法 */ public void finish() { if (mParent == null) {//没有父级activity int resultCode;//返回代码,默认为0 Intent resultData; synchronized (this) { resultCode = mResultCode; resultData = mResultData; } if (false) Log.v(TAG, "Finishing self: token=" + mToken); try { if (resultData != null) { resultData.setAllowFds(false); } if (ActivityManagerNative.getDefault() .finishActivity(mToken, resultCode, resultData)) { mFinished = true; } } catch (RemoteException e) { // Empty } } else { mParent.finishFromChild(this);//顾名思义,调用这个方法,会通过结束父级activity进而结束activity组的所有activity } }
总结:当调用finish方法后,activity中的全局变量mFinished就会成为true,当调用弹框,广播接收器等,需要调用isFinishing方法进行判断