インターフェイスを使用すると、これを実現できます
このようなインターフェースを書く
public interface onSuccessListner {
void onSuccess(DigitsSession session,String phoneNumber);
}
このインターフェースを Main Activity に実装します
public class MainActivity extends AppCompatActivity implements onSuccessListner{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onSuccess(DigitsSession session,String phoneNumber) {
//write your method calling or operations here
}
}
アプリケーション クラスで Application.ActivityLifecycleCallbacks を実装して、メイン アクティビティが作成されているかどうかを確認します。メイン アクティビティが作成された場合は、メイン アクティビティのコンテキストをリスナーに適用します。
コールバック メソッド内の作成時に、MainActivity の成功メソッドを呼び出します。
public class MyApplctn extends Application implements Application.ActivityLifecycleCallbacks {
onSuccessListner onSuccessListner;
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(this);
authCallback = new AuthCallback() {
@Override
public void success(DigitsSession session, String phoneNumber) {
//call myFunction() from MainActivity here
if(onSuccessListner!=null){
onSuccessListner.onSuccess(session,phoneNumber);
}
}
@Override
public void failure(DigitsException exception) {
}
};
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
if (activity instanceof MainActivity) {
onSuccessListner= (com.mmadapps.myapplication.onSuccessListner) activity;
}
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}
これがあなたを助けることを願っています