meaning of RuntimeException("Stub!") in Android
I don't know where you looked, but the code for finish()
is this
/** * Call this when your activity is done and should be closed. The * ActivityResult is propagated back to whoever launched you via * onActivityResult(). */public void finish() { finish(DONT_FINISH_TASK_WITH_ACTIVITY);}
which calls the private implementation
/** * Finishes the current activity and specifies whether to remove the task associated with this * activity. */private void finish(int finishTask) { if (mParent == null) { int resultCode; Intent resultData; synchronized (this) { resultCode = mResultCode; resultData = mResultData; } if (false) Log.v(TAG, "Finishing self: token=" + mToken); try { if (resultData != null) { resultData.prepareToLeaveProcess(this); } if (ActivityManagerNative.getDefault() .finishActivity(mToken, resultCode, resultData, finishTask)) { mFinished = true; } } catch (RemoteException e) { // Empty } } else { mParent.finishFromChild(this); }}
Important here is ActivityManagerNative.getDefault().finishActivity
which you can find at line 3359 in this file https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/app/ActivityManagerNative.java
If you want to dive deeper, you can just follow the trail.