У меня есть действие, которое публикует твиты с помощью 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?
Мне нужно найти способоткройте диалоговое окно или другой способ, чтобы пользователь не покинул действие, прежде чем я получу идентификатор отправленного твита.
Заранее благодарен за помощь.