1. ランチャーアクティビティからAccountManager経由で独自AccountAuthenticatorActivityを起動
  2. 独自AccountAuthenticatorActivityでバックボタンが押されたら、認証をキャンセル
  3. AccountManagerのコールバックでfutureがキャンセルされていたら、ランチャーアクティビティをfinish
  4. アクティビティが消えるトランジションの後、一瞬 (それまでに起動していた) アプリの画面が表示される

という症状です。

AndroidManifest.xml

    <activity
        android:name=".activity.LaunchActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.Translucent.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

バックボタンが押された時のコールバック: 認証をキャンセルする

public class LoginActivity extends AccountAuthenticatorActivity {
    @Override
    public void onBackPressed() {
        setAccountAuthenticatorResult(null);
        setResult(RESULT_CANCELED);
        finish();
    }
}

AccountManagerのコールバック内でキャンセルを処理

    mAccountManager.getAuthTokenByFeatures(mAccountType, mAuthTokenType, null, activity, null, null,
        new AccountManagerCallback<Bundle>() {
            @Override
            public void run(AccountManagerFuture<Bundle> future) {
                Bundle bundle;
                try {
                    if (future.isCancelled()) {
                        eventBus.post(new LoginFailedEvent(true));
                        return;
                    }

ランチャーアクティビティをfinish()

public class LaunchActivity extends BaseActivity {
    // EventBus経由で受け取る
    public void onEventMainThread(LoginFailedEvent event) {
        if (event.isCancelled()) {
            finish();
        }

終了の仕方がおかしいなどあるでしょうか。