注销一个Android风味也可以在同一设备上注销其他风味

时间:2017-08-21 14:40:52

标签: android retrofit android-event android-flavors

我已经为同一个应用程序构建了两种不同的版本,同时在同一台设备上运行如果我从一个应用程序注销,它也会注销另一个应用程序。在我的应用程序中,Logout是一个网络呼叫,因此当我单击一个注销按钮时,我可以看到两个应用程序的网络呼叫。我正在使用Retrofit进行网络呼叫。单击注销后,我在eventbus上推送Logout事件,MainLandingActivity订阅了该事件。

@Override
public void onClick(DialogInterface dialogInterface, int i) {
                                 showSimpleProgressDialog(context);
    EventBus eventBus = EventBus.getDefault();
    LogoutEvent logoutEvent = new LogoutEvent(false, context);
    eventBus.post(logoutEvent);
}

以下是订阅代码

@Subscribe
public void onLogout(LogoutEvent logoutEvent) {
    try {
        if (NetworkReceiver.isConnected) {
                Intent intent = new Intent(this, UploadDataService.class);
                intent.putExtra(Const.SERVICE_KEY, Const.MAIN_LANDING_LOGOUT);
                startService(intent);
            } else {
                RUtils.removeSimpleProgressDialog();
                RUtils.showSnackbar(rvMainLanding, getString(R.string.logout_no_internet_error), Snackbar.LENGTH_LONG);
            }

    } catch (Exception e) {
        e.printStackTrace();
        Crashlytics.logException(e);
        RUtils.removeSimpleProgressDialog();
        RUtils.showSnackbar(rvMainLanding, getString(R.string.logout_failed_error), Snackbar.LENGTH_LONG);
    }
}

1 个答案:

答案 0 :(得分:0)

搞定了,UploadDataService正在发送全局广播以进行注销。用LocalBroadcastManager替换它,它解决了这个问题。