I don't understand the meaning, value, or importance of RESULT_FIRST_USER, other than that my own result codes must be greater than 1
. Will someone please explain it? RESULT_OK and RESULT_CANCELED make perfect sense to an english speaker. But what in the world of android is RESULT_FIRST_USER? All the documentations says about it is
Start of user-defined activity results.
When you finish an activity, you can call setResult(RESULT_CODE)
to send back data to another activity. If you don't call this method, the default value will be RESULT_CANCELLED
(which equals 0
)
Example of returning data:
Intent intent= new Intent();
intent.putExtra("data",data);
setResult(YOUR_RESULT_CODE,intent);
finish();
When an activity ends, it can call setResult(int)
to return data back to its parent.
It must always supply a result code, which can be the standard results
RESULT_CANCELED
(Standard activity result: Operation canceled. Constant Value: 0)
RESULT_OK
(Standard activity result: operation succeeded. Constant Value: -1), or any custom values starting at RESULT_FIRST_USER
(Start of user-defined activity results. Constant Value: 1). In addition, it can optionally return back an Intent containing any additional data it wants.
So, bottom line since you must supply the result code Android "helps' you a bit by saying: please state if the result code of this Activity is OK, CANCELED or you have your own, custom made, result.
The answer to the question is actually the combination of comments from @CommonsWare and @Chris. So, for the sake of progeny, I am going to consolidate the comments and make it available in one place.
Basically, there are two predefined constants for the requestCode
and they are Activity.RESULT_OK
and Activity.RESULT_CANCELLED
. However, android developers can also set custom codes for their apps by using the offset Activity.RESULT_FIRST_USER
. Doing so ensures that there are no clashes between constants set at the OS level and the app level.
Purely, my opinion, I think that the FIRST USER
suffix is meant to refer to developers – just like how end consumer refers to consumers of a said product – who are the first users before the app users.
Below is an example of how you can use this offset,
public static final int MY_RESULT_CODE = Activity.RESULT_FIRST_USER + 1;