This is not possible to override of instance onActivityResult() but it is possible to do the way below.
The major idea is to create your class which calls your custom function inside the code;
In this case
That is, your activity class have to be extended by ABase not by Activity:
public class yourClass extends ABase{
//your usual code is here.
}
Then, ABase
looks like this:
public class ABase extends Activity {
private Callable<Void> clb;//this function will be called
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (clb != null) {
try {
clb.call();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void setMyCallable(Callable<Void> callable){
this.clb = callable;
}
}
in your public myClass use public ABase
act instead of public Activity act
;
there is a setSomeFunction()
for example to use:
public class myClass {
public ABase act;
public static setSomeFunction() {
if (act != null) {
Callable<Void> clb = new Callable<Void>() {
@Override
public Void call() throws Exception {
Log.d(TAG, "is Called!");
return null;
}
}
act.setMyCallable(clb);
}
}
}