如何在TwitterKit Android SDK的BroadcastReceiver中等待响应?

时间:2019-02-16 21:49:56

标签: android twitter android-broadcastreceiver twitterkit

我有一个活动,该活动使用Twitter的TweetComposer SDK(其here发布)发布了tweet,我的代码遵循该教程,并在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。问题是,直到通过BroadcastReceiver接收到该ID,我才能使用它。仅当该推文的上传完成时才会发生。

在连接速度较慢的情况下,发布带有图片的推文所花费的时间要比从作曲家活动到首先调用作曲家的活动花费的时间更长。

我尝试从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之前,我需要找到一种方法来弹出对话框,或者避免用户退出活动。

预先感谢您的帮助。

0 个答案:

没有答案