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方法进行判断


原创粉丝点击