0
同じデバイスで実行中に同じアプリの2つの異なるフレーバーを構築しました。あるアプリからログアウトすると、他のアプリもログアウトします。私のアプリでは、ログアウトはネットワークコールなので、1つのログアウトボタンをクリックすると、両方のアプリケーションのネットワークコールを見ることができます。 Retrofitを使用してネットワーク通話を行っています。ログアウトがクリックされると、私はイベントバスでログアウトイベントをプッシュしており、MainLandingActivityはそれをサブスクライブしています。ここで1つのアンドロイドフレーバーでログアウトすると、同じデバイスで他のフレーバーもログアウトします
@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);
}
}