Как мне дождаться ответа в TwitterKit Android SDK BroadcastReceiver? - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть действие, которое публикует твиты с помощью TweetComposer SDK в Твиттере, доступно здесь , мой код следует учебному пособию, получатель добавляется в файл манифеста Android следующим образом:

<receiver
        android:name=".MyResultReceiver"
        android:exported="false">
        <intent-filter>
            <action android:name="com.twitter.sdk.android.tweetcomposer.UPLOAD_SUCCESS" />
            <action android:name="com.twitter.sdk.android.tweetcomposer.UPLOAD_FAILURE" />
            <action android:name="com.twitter.sdk.android.tweetcomposer.TWEET_COMPOSE_CANCEL" />
        </intent-filter>
</receiver>

И получатель создается в рамках действия следующим образом:

BroadcastReceiver broadcastReceiver =  new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle b = intent.getExtras();
        String message = b != null ? b.getString("tweetid") : null;
    }
};

Как вы видите, в этом получателе я пытаюсь собрать идентификатор из только что опубликованного твита.Проблема в том, что я не могу использовать этот идентификатор, пока он не получен через BroadcastReceiver.Это происходит только после завершения загрузки твита.

На более медленных соединениях публикация твитов с изображениями занимает больше времени, чем требуется, чтобы перейти от действия композитора к действию, которое сначала вызвало композитора.

Я пытался вызвать ProgressDialog (хотя я знаю, что теперь он устарел) из метода onResume (), но я продолжал получать эту ошибку:

Unable to resume activity {}: android.view.WindowManager$BadTokenException: Unable to add window -- token null for displayid = 0 is not valid; is your activity running?

Мне нужно найти способоткройте диалоговое окно или другой способ, чтобы пользователь не покинул действие, прежде чем я получу идентификатор отправленного твита.

Заранее благодарен за помощь.

...