Запуск новых Интентов с SingleInstance - PullRequest
0 голосов
/ 02 октября 2011

У меня есть два занятия. У одного действия есть основная игра, а у другого - игра поверх экрана, которая представляет собой просто настраиваемое диалоговое окно с предупреждением. В экране игры поверх есть кнопка, которая при нажатии запускает новую активность.

String authUrl = httpOauthprovider.retrieveRequestToken(httpOauthConsumer, OAUTH_CALLBACK_URL);
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl));             
            intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY );
            startActivity(intent);

Страница является страницей авторизации в Твиттере, но проблема, с которой я сталкиваюсь, заключается в том, что, когда я нажимаю кнопку «Авторизовать приложение», снова запускается действие с диалоговым окном предупреждения (вызов метода create вместо onNewIntent).

Я пробовал разные режимы запуска (singleInstance, singleTask и singleTop).

У каждого из них есть свои проблемы. singleInstance и singleTask удаляют исходное действие вызова, поэтому, когда слайды AlertDialog в исходном действии изменяются на страницу меню. singleTop всегда сначала вызывает create (даже если он не вызывает onDestroy)

У кого-нибудь есть рекомендации или примеры того, как мне это сделать?

Кстати, действие, которое вызывает игровое действие, является стандартным режимом запуска

Заранее спасибо

1 Ответ

0 голосов
/ 03 октября 2011

Я закончил тем, что сделал вызов новой активности от первоначального абонента.Поэтому, когда я выбираю твитнуть сообщение из настраиваемого диалогового окна оповещения, я закрываю диалоговое окно оповещения с результатом, запрашивающим твит, а из исходного задания я вызываю третье действие (авторизация в твиттере).Это не тот ответ, который я искал, но именно так я решил проблему.Если кто-нибудь знает лучшее, более красноречивое решение, я бы хотел его знать.

SO Теперь поток идет A-> B-> A-> C-> A-> B вместо A-> B-> С-> В

...