我有一个使用 Twitter 的 TweetComposer SDK 发布推文的活动,可在此处获得,我的代码遵循教程,将接收器添加到 Android Manifest 文件中,如下所示:
<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;
}
};
如您所见,在该接收器中,我尝试从刚刚发布的推文中收集 id。问题是我不能使用这个 id,直到它通过 BroadcastReceiver 接收到。只有在推文上传完成后才会发生这种情况。
在较慢的连接上,发布带有图片的推文所花费的时间比从作曲家活动到首先调用作曲家的活动所花费的时间要长。
我尝试从 onResume() 方法调用 ProgressDialog(即使我知道它现在已被弃用),但我一直收到此错误:
Unable to resume activity {}: android.view.WindowManager$BadTokenException: Unable to add window -- token null for displayid = 0 is not valid; is your activity running?
我需要找到一种方法来显示一个对话框或另一种方法来避免用户在我收到发送的推文的 id 之前离开活动。
在此先感谢您的帮助。