从应用程序调用活动

Sha*_*hiq 2 android twitter-oauth twitter-digits android-application-class

我试图用数位来自Twitter的.该AuthCallBack从活动中使用和最近时不会触发文件说,从使用AuthCallBack 应用类.

现在我让AuthCallBack正常工作并且onSuccess我需要从我的MainActivity调用一个方法.我如何从Application类实现它.请帮助.我已经给出了下面的代码.

public class MyApplication extends Application {

    private AuthCallback authCallback;

    @Override
    public void onCreate() {
        super.onCreate();

        authCallback = new AuthCallback() {
            @Override
            public void success(DigitsSession session, String phoneNumber) {

                //call myFunction() from MainActivity here

            }

            @Override
            public void failure(DigitsException exception) {

            }
        };
    }

    public AuthCallback getAuthCallback(){
        return authCallback;
        }
}
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以使用BroadcastManager将其归档.以下是您可以使用的示例代码

来自申请:

    @Override
    public void success(DigitsSession session, String phoneNumber) {
    Intent intent = new Intent(Constants.FILTER_LOGIN_SUCCESS);
    intent.putExtra(Constants.EXTRA_PHONE_NUMBER, phoneNumber);
    LocalBroadcastManager.getInstance(mInstance).sendBroadcast(intent);
}
Run Code Online (Sandbox Code Playgroud)

活动类:

@Override
    protected void onResume() {
        super.onResume();
        LocalBroadcastManager.getInstance(SignUpActivity.this).registerReceiver(broadcastReceiver,
                new IntentFilter(Constants.FILTER_LOGIN_SUCCESS));
    }

@Override
protected void onDestroy() {
    super.onDestroy();
    LocalBroadcastManager.getInstance(SignUpActivity.this).unregisterReceiver(broadcastReceiver);
}

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String phoneNumber = intent.getStringExtra(Constants.EXTRA_PHONE_NUMBER);
            navigateToAnotherActivty();
        }
    };
Run Code Online (Sandbox Code Playgroud)