Как я могу вернуться к детской деятельности, после окончания OAUTH для твиттера? - PullRequest
3 голосов
/ 24 июня 2011

Обновление от 23.09.2013

Этот вопрос устарел, поскольку упомянутые ниже вещи на 80% устарели.


Для моего приложения есть одна вкладка с 5 различными действиями для 5 вкладок. Одной из них является группа действий, которая содержит 4 дочерних действия, и пользователи могут возвращаться туда и обратно для этих дочерних действий.

Теперь одно из дочерних заданий используется для публикации твита. OAUTH вещь в порядке. Однако я обнаружил, что обратный вызов не может указывать на действие, кроме родительской группы действий или даже на вкладку. Я не уверен, на что он указывает, но в результате пользователь авторизует мое приложение в твиттере и возвращается в приложение для Android, и все действия будут начинаться с нуля, и они будут вызываться onCreate вместо onResume или onNewIntent. Это вызывает бесконечный цикл, запрашивающий у пользователя аутентификацию снова и снова. Я попытался добавить Android: запуск: SingleInstance, но это не помогает.

Если я не запускаю задание в детстве, но начинаю новое занятие, все в порядке. Я могу вернуться к onNewIntent и успешно опубликовать твиты. Поэтому я совершенно уверен, что причиной является активность группы или вкладки.

На самом деле я не очень знаком с тем, как фильтр намерений работает в группе вкладок / действий, кто-нибудь может объяснить мне случай?

Manifest.xml      
<activity android:name="TwitterAct" android:launchMode="singleInstance">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="myapp" android:host="twitteract" />       
        </intent-filter>
</activity>

TwitterAct
private final String CALLBACKURL = "myapp://twitteract"; 

Спасибо

1 Ответ

0 голосов
/ 19 июля 2011

Я задал похожий вопрос некоторое время назад и получил ответы от нескольких людей:

Есть ли образец качества OAuth для Android?

Я получил свойнаправить намерение обратно к исходному действию, используя singleTask вместо singleInstance, но кажется, что люди добиваются успеха в обоих направлениях.Похоже, что большинство людей добавляют флаги (Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_FROM_BACKGROUND) при создании Intent для запуска браузера.Не совсем уверен, как они будут взаимодействовать с singleInstance, но может повлиять на то, где намерение может быть направлено.

...